PHP - mb_convert_encoding()不会正确地将重音转换为utf8

时间:2018-04-05 09:21:24

标签: php string encoding utf-8

对于我的客户,我需要转换带重音的ANSI(Windows)文件

我尝试将数据转换为utf8,稍后通过在db中导入的regex(验证)进行解析

例子:“idées”(法语单词的想法)

  • 如果我在记事本++中强制使用UTF8,它可以正常工作

     the data displays as : id├®es
    
  • 如果我使用原始ANSI文件并使用PHP转换数据,则无效

     $_value=mb_convert_encoding($value, "Windows-1252","UTF-8");
    
     the data displays as : idÚes 
    

请帮助

感谢

1 个答案:

答案 0 :(得分:1)

你的论点错误。

来自http://php.net/manual/en/function.mb-convert-encoding.php

  

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

所以你需要

$_value=mb_convert_encoding($value, "UTF-8", "Windows-1252");

同时检查您是否需要使用mb_check_encoding进行转换,以防万一您碰巧读取的文件已经是UTF-8