我有一个CSV文件要导入到数据库中,我发现在很多地方,这种方式已将字符串编码为“ Mete y S \ 303 \ 241cala”。
我想将其编码为原始字符串,即“ Mete ySácala”。
我使用了以下功能
iconv(mb_detect_encoding(“ Me y S \ 303 \ 241cala”,mb_detect_order(),true),“ UTF-8”,“ Mete y S \ 303 \ 241cala”);
这很完美!
我正在通过ExcelReader读取文件并循环播放内容。
但是当我使用实际变量时,它不会转换它。
//循环
iconv(mb_detect_encoding($ rec ['title'],mb_detect_order(),true),“ UTF-8”,$ rec ['title']);
不适用于循环变量,可能是正斜杠的问题。
答案 0 :(得分:0)
PHP标准库有一个解决方案:
$decodedString = utf8_decode($string);
答案 1 :(得分:0)
stripcslashes()
不仅可以去除反斜杠,还可以处理\r
,\n
和\123
字符转义。因为这显然是CSV编码器产生的。
我使用了以下功能
iconv(mb_detect_encoding("Mete y S\303\241cala", mb_detect_order(), true), "UTF-8","Mete y S\303\241cala");
这很完美!
那不是那里发生的事情。当PHP在双引号\303\241
字符串表达式中遇到"Mete y S\303\241cala"
时,会将其解释为原始字符串字节。 iconv
和mb_*
都没有在这里做任何事情。
与使用单引号的字符串'Mete y S\303\241cala'
或从文件读取的某些文字数据形成对比。在这种情况下,您必须自己解码八进制数(上述功能)。
无论如何,这不是“ UTF-8编码”。这是在顶部编码的附加字节序列。