> 백엔드 개발 > PHP 튜토리얼 > PHP 怎么转化 webdings 字体的文字?

PHP 怎么转化 webdings 字体的文字?

WBOY
풀어 주다: 2016-06-17 08:30:24
원래의
1268명이 탐색했습니다.

我的一个php文件编码为gbk的,我想转化为utf8的编码格式,其中有几个字,字体是webdings,通过iconv没有转化过来。我该怎么做,用php语言才能把其转化为utf8的编码格式

回复内容:

《编码》

你有个小盒子,里面装了 256 枚印章,每一枚都有编号。你参加了学校的「印章密码爱好者兴趣小组」,里面有个外国来的小女孩,经常跟你玩一个游戏,比如你问「今年暑假你去了哪里?」她回答说「78,89,67」。因为你们都如此熟悉自己的印章,你一下子就明白了她说的是「NYC」。

「那你出生在哪里呢?」,你问。
她迟疑了一下,想了想说,「77,195,188,110,99,104,101,110」。

你愣住了。一盒印章有 256 个,但是大家平时基本只用前 128 个。你知道 77 是 M,可 195 是什么?你一时想不起来,只好惭愧地拿出随身携带的那盒印章,拿出 195 和 188 号按在纸上:

「ü」。

所以小女孩说的是「München」。可这是啥意思呢?à 又 ¼ 月台?你疑惑地望着小姑娘,小姑娘也疑惑地望着你。只见她也转身拿出一个盒子打开来——你顿时傻了眼——里面密密麻麻地居然排了上千个小印章!而且有好多层!小姑娘熟练地翻到某一层,俏生生用指甲挑出一枚小印章来,在纸上印下一个符号:

「ü」

然后把印章递给你。你拿过来一看,好家伙,上面居然刻着「C3 BC」,另有一行小字「195 188」。所以……对于她来说,195 188 就代表能印出「ü」的印章了……可是印象里你的盒子里也有「ü」呀,于是你把盒子里的第 252 号印章拿出来给她看,正是一个「ü」。就在你们面面相觑茫然无措快要哭出来的时候,兴趣小组的辅导员大叔走过来,亲切地说:「小朋友们,别难过,要继续相信爱情」,然后从墙上的书架里拿下一本封面上印着《ICONV》的大书,熟练地翻到「iso8859」这一章,指着「00fc ü:252」条目里后面的那个数字说:「你们看!iso8859 的 ü 就是 252 号!」;然后他又翻到「utf8」这一章,指着「00fc ü:C3 BC」说:「而 utf8 的 ü 就是十六进制 C3,BC,也就是十进制的 195,188!」。

大叔合上大书,把你的印章盒子翻过来,指给你看背后印着的一行小字:「Encoded in iso8859」,而那个外国小女孩的盒子背面则印着「Encoded in utf8」。「我只能帮你到这里啦,小伙子」,大叔看着你们似懂非懂的样子,笑着说。

虽然你不太明白为什么要有这样一本书,为什么不能每个盒子都装一样的东西,但是从此之后,如果碰到小女孩说出不认识的数字,你们就会一起去查阅那本《ICONV》,从此过上了两小有猜的幸福生活。

——————外一篇——————

《字体》

作为一个印章收集爱好者,你一生积攒了很多只盒子,每个盒子里面有很多带编号的小孔,每个小孔里面插着一只印章。有个盒子上面写着「Arial」,拿出里面编号为 65 的印章,印在纸上是这样的:

PHP 怎么转化 webdings 字体的文字?

很多其他盒子里的 65 号印章,图案看起来都很相似,比如「Brush Script」盒子里面的 65 号:

PHP 怎么转化 webdings 字体的文字?

直到有一天你遇到有个盒子上面写着「Webdings」,里面编号为 65 的印章,印在纸上居然是这样的:

PHP 怎么转化 webdings 字体的文字?
……于是你想起小时候跟你一起玩的那个小姑娘,用颤抖的双手拿出 78,89,67 三枚印章,按在纸上:

PHP 怎么转化 webdings 字体的文字?

————————

阅读完以上两篇小小说后请思考:

  1. 编码和字体的关系是怎样的?
  2. 「00fc ü:252」 和 「00fc ü:C3 BC」里面的「00fc」可能会是什么?
  3. iconv 是做什么用的?

————————

思考题答案:
  1. 字体描述的是字符所具备的外形,编码则是对于某个编号应该代表哪个字符而产生的约定。字体会以某种编码排列,但是编码和具体的某字体之间没有必然联系,就好比 78 可以是字母 N,却也可以是一只眼睛。
  2. 把全世界所有可能出现的符号搜集到一起列成一个表,给里面的每个字符编列一个独一无二的号码,这个编码计划叫做 Unicode。而那些号码则叫做(unicode 的)code point。00fc 就是 ü 在 Unicode 编码计划里的 code point。
  3. 某一个特定字符在 Unicode 里的 code point 可以通过 iconv 找到对应的 utf8 或者 iso8859 的 code point,所以一个字符在 iso8859 里的 code point 也就可以通过 iconv 找到对应的 utf8 的 code point。换句话说,iconv 可以转换编码,但是具体这个编码用什么字体显示,不关 iconv 的事情。
谢邀。 都 是大神啊,菜鸟路过 涛吴的回答很生动,编码和字体应分清。为什么会有这样疑问,是转换后显示不正常么? 求问啊 现在打开ppt很多东西都自动转成webding字体,无法调回,怎么办呀
谢谢 你输入的是pinyin 'da' 并选择”大“
系统录入的是根据当前编码的0x34 0x35
字库就是图形库,或者矢量图形库,根据编码0x34 0x35 来显示 "大"
不同字库同样编码的图像画的可能不一样。
——————但是这里我自己也有个问题:
utf8和gbk都可以打出“大”,编码和字库对应吗?是怎么对应的?还是有个中间层来映射?
(很久以前看过libiconv,freetype的代码,但是现在实在想不起来了。) 关于字符编码:字符编码入门
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿