PHP Convert Windows-1251 to UTF 8

前端 未结 5 637
粉色の甜心
粉色の甜心 2021-01-04 10:03

I have a small html code and I need to convert it to UTF-8.
I use this iconv(\"windows-1251\", \"utf-8\", $html);

All text converts correctly, but

相关标签:
5条回答
  • 2021-01-04 10:46

    try this, works for me!

    $result = str_replace ('€', '€' , $result);
    
    0 讨论(0)
  • 2021-01-04 10:47

    Most of the solutions lack conversion to single-byte encoding. I use mb_convert_encoding($string,'windows-1251') to convert from UTF-8 in my case.

    function ru2Lat($string)
    {
    $rus = array('ё','ж','ц','ч','ш','щ','ю','я','Ё','Ж','Ц','Ч','Ш','Щ','Ю','Я');
    $lat = array('yo','zh','tc','ch','sh','sh','yu','ya','YO','ZH','TC','CH','SH','SH','YU','YA');
    $string = str_replace($rus,$lat,$string);
    $string = strtr($string,
         "АБВГДЕЗИЙКЛМНОПРСТУФХЪЫЬЭабвгдезийклмнопрстуфхъыьэ",
         "ABVGDEZIJKLMNOPRSTUFH_I_Eabvgdezijklmnoprstufh'i'e");
    
    return($string);
    }
    
    function transliterate($string){
        if (!is_string($string)) return $string;
        return ru2lat(mb_convert_encoding($string,'windows-1251'));
    }
    
    function transliterate_array($a){
    
    $c = array_map(transliterate,$a);
                 return $c;
    
    }
    
    0 讨论(0)
  • 2021-01-04 10:50

    If you have access to the Multibye package, you can try it. See the PHP page here: http://www.php.net/manual/en/function.mb-convert-encoding.php

    $html_utf8 = mb_convert_encoding($html, "utf-8", "windows-1251");
    
    0 讨论(0)
  • 2021-01-04 10:53

    You know, message like Показать мн you see if encoding for page is windows-1251, but text encoded in utf-8.
    I saw this problem in one of my project, so just change change encoding for page in utf-8 and this text will shown correctly.

    Let me take you some examples:
    if page in utf-8, but text in windows-1251 you wil see something like this:
    ???? ?? ?????? ??? ????? ??? ??????? ?? ????? ???? ??? ?????

    if page in windows-1251, but text in utf-8 you see this:
    "Мобильные телефоны";"Apple iPhone 4

    0 讨论(0)
  • 2021-01-04 10:53

    I always use manual convertation (character-by-character), like this:

    $input= 'Обращение РљР°С';
    
    
    
    $s= str_replace('С?','fgr43443443',$input);
    $s= mb_convert_encoding($s, "windows-1251", "utf-8");
    $s= str_replace('fgr43443443','ш',$s);
    
    
    echo $s;
    

    p.s. dont forget, the .php file encoding should be UTF8. also, in the head of HTML,insert standard declaration for UTF8

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    0 讨论(0)
提交回复
热议问题