PHP中ASCII编码的unicode到SQL语句,使用mb_convert_编码

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

我使用的文件类型仅由ASCII字符组成。其他字符被编码。两个字节字符前面是
\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。它无法神奇地从所有可能的未定义编码转换。