【发布时间】:2018-02-06 19:37:27
【问题描述】:
我想将字符串转换为 UTF-8。问题是一些字母由两个八位字节二进制代码组成,而大部分字母由一个八位字节二进制代码组成。
这是一个例子:
echo $title; # Shuttle XPС slim C
echo Encoding::fixUTF8(Encoding::toUTF8($title)); # Shuttle XP? slim C
现在如果你把字符串转换成二进制,你可以看到问号 c 字符在二进制中看起来不一样:
S = 01010011
h = 01101000
u = 01110101
t = 01110100
t = 01110100
l = 01101100
e = 01100101
= 00100000
X = 01011000
P = 01010000
C = 11010000 10100001
= 00100000
s = 01110011
l = 01101100
i = 01101001
m = 01101101
= 00100000
C = 01000011
所以问题是一个“C”是“11010000 10100001”,一个“C”是“01000011”。这发生在许多不同的字母上。有没有办法解决这个问题?
提前致谢!
【问题讨论】:
-
看看,它可能会有所帮助。 stackoverflow.com/questions/21322702/…
-
仅供参考:像“
toUTF8”这样的函数没有指定 what from 和“fixUTF8”(这是什么意思?)绝对是无稽之谈。