我正在尝试将以下字符串转换为: \xe2\x80\x9c\xc3\x83\xc2\xa9\xe2\x80\x9d 到: \xe2\x80\x9c\xc3\xa9\xe2\x80\x9d 。这是一个 latin1 字符,但我无法正确执行。到目前为止,我已经尝试了两个函数,但它们都没有给我正确的输出。
\n\n$translation = 'Cop\xc3\x83 \xc2\xa9 rnico was Italian';\n$translation = mb_convert_encoding($translation, 'utf-8', 'iso-8859-1'); //opt 1\n$translation = iconv('utf-8', 'latin1', $translation); //opt 2\n
Run Code Online (Sandbox Code Playgroud)\n\n我从 Api 获取这些数据,所以我不知道数据库中发生了什么。\n这是西班牙语字符串:Cop\xc3\xa9rnico es italiano。\n这是来自 API 的数据:Cop\xc3\x83 \xc2\xa9 rnico 是意大利语\n这是 $translation = bin2hex($translation);\n436f70c38320c2a920726e69636f206973204974616c69616e 的结果
\n\n正确的做法是什么?问候。
\n小智 5
我之前也遇到过同样的问题,这个选项\n
$translation = iconv(\'utf-8\', \'latin1\', $translation); //选择2\n工作得很好。\n你的问题是`Cop\xc3\x83 \xc2\xa9 rnico was Italian`与`Cop\xc3\x83\xc2\xa9rnico was Italian`不同。\n
\n因此,当您尝试转换函数iconv时,会看到 2 个错误的 UTF-8 符号,因为空格,与“ \xc3\x83 \xc2\xa9 ”(2 个无效的 UTF-8 符号和 2 个空格)与“ \xc3 ”不同\x83\xc2\xa9 "(1 个有效的 UTF-8 符号)
\n