PHP中ASCII编码的unicode到SQL语句,使用mb_convert_编码
我使用的文件类型仅由ASCII字符组成。其他字符被编码。两个字节字符前面是PHP中ASCII编码的unicode到SQL语句,使用mb_convert_编码,php,unicode,encoding,mb-convert-encoding,Php,Unicode,Encoding,Mb Convert Encoding,我使用的文件类型仅由ASCII字符组成。其他字符被编码。两个字节字符前面是\X2\,后面是\X0\,四个字节字符使用\X4\和\X0\。我可以很容易地找到这些,但我不知道如何处理它们 e、 g.字符ø表示为\X2\00F8\X0\ 我要找的整个字符串是100mm\X2\00F8\X0\ 如何将其转换为一个字符串,然后将其插入数据库 我想我需要使用mb\u convert\u encoding() 但我不确定我要去哪个编码和从哪个编码 有什么想法吗 简单地说,我有“100 mm\X2\00F8\X
\X2\
,后面是\X0\
,四个字节字符使用\X4\
和\X0\
。我可以很容易地找到这些,但我不知道如何处理它们
e、 g.字符ø
表示为\X2\00F8\X0\
我要找的整个字符串是100mm\X2\00F8\X0\
如何将其转换为一个字符串,然后将其插入数据库
我想我需要使用mb\u convert\u encoding()
但我不确定我要去哪个编码和从哪个编码
有什么想法吗
简单地说,我有“100 mm\X2\00F8\X0\”,我想将其输出为“100 mmø”这取决于您使用的SQL server。例如,对于MySQL,您可以使用 此方法会自动从sql连接中获取编码,以便安全使用
我会传递原始值100mø。所以我只需要
hex2bin('00F8')
然后
utf8\u encode(…)
将其从utf-16转换为utf 8我的问题是如何从编码值转换为原始值。顺便说一句,我的数据库是Postgresql。utf8\u编码
不会将UTF-16转换为UTF-8。无论您认为得到的结果是错误的还是巧合。0x00F8是ø的utf-16表示形式。0xC3 0xB8在utf-8中。utf8_编码是否不采用任何编码并将其表示为utf 8?如果不是这样,那可能是巧合,因为它的行为完全符合我对文档中任何我害怕的字符的预期。它只适用于拉丁语-1。它无法神奇地从所有可能的未定义编码转换。