我的一个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 的印章,印在纸上是这样的:

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

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

……于是你想起小时候跟你一起玩的那个小姑娘,用颤抖的双手拿出 78,89,67 三枚印章,按在纸上:

————————
阅读完以上两篇小小说后请思考:
- 编码和字体的关系是怎样的?
- 「00fc ü:252」 和 「00fc ü:C3 BC」里面的「00fc」可能会是什么?
- iconv 是做什么用的?
————————
思考题答案:
- 字体描述的是字符所具备的外形,编码则是对于某个编号应该代表哪个字符而产生的约定。字体会以某种编码排列,但是编码和具体的某字体之间没有必然联系,就好比 78 可以是字母 N,却也可以是一只眼睛。
- 把全世界所有可能出现的符号搜集到一起列成一个表,给里面的每个字符编列一个独一无二的号码,这个编码计划叫做 Unicode。而那些号码则叫做(unicode 的)code point。00fc 就是 ü 在 Unicode 编码计划里的 code point。
- 某一个特定字符在 Unicode 里的 code point 可以通过 iconv 找到对应的 utf8 或者 iso8859 的 code point,所以一个字符在 iso8859 里的 code point 也就可以通过 iconv 找到对应的 utf8 的 code point。换句话说,iconv 可以转换编码,但是具体这个编码用什么字体显示,不关 iconv 的事情。
谢谢 你输入的是pinyin 'da' 并选择”大“
系统录入的是根据当前编码的0x34 0x35
字库就是图形库,或者矢量图形库,根据编码0x34 0x35 来显示 "大"
不同字库同样编码的图像画的可能不一样。
——————但是这里我自己也有个问题:
utf8和gbk都可以打出“大”,编码和字库对应吗?是怎么对应的?还是有个中间层来映射?
(很久以前看过libiconv,freetype的代码,但是现在实在想不起来了。) 关于字符编码:字符编码入门

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

utf8编码汉字占3个字节。在UTF-8编码中,一个中文等于三个字节,一个中文标点占三个字节;而在Unicode编码中,一个中文(含繁体)等于两个字节。UTF-8使用1~4字节为每个字符编码,一个US-ASCIl字符只需1字节编码,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文等字母则需要2字节编码。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版