PHP转换的Windows-1251到UTF-8(PHP Convert Windows-1251

2019-08-18 06:27发布

我有一个小的HTML代码,我需要将其转换为UTF-8。
我用这个iconv("windows-1251", "utf-8", $html);

所有文本正确转换,但如果在标签文本例如<i>...</i>那么它不将文本转换,我看到somethig这样Показать РјРЅ

Answer 1:

如果你有机会到Multibye包,你可以试试。 看到这里的PHP页面: http://www.php.net/manual/en/function.mb-convert-encoding.php

$html_utf8 = mb_convert_encoding($html, "utf-8", "windows-1251");


Answer 2:

你知道,像消息Показать РјРЅ你看看编码页面windows-1251 ,但在文字编码utf-8
我看到在我的项目之一这个问题,所以才改改编码页utf-8这文本将正确显示。

让我带你一些例子:
如果在页面utf-8但文本windows-1251你西港岛线看到这样的内容:
???? ?? ?????? ??? ????? ??? ??????? ?? ????? ???? ??? ?????

如果在页面windows-1251 ,但在文本utf-8你看到这一点:
"Мобильные телефоны";"Apple iPhone 4



Answer 3:

我总是用手动convertation(字符一个字符),如下所示:

$input= 'Обращение РљР°С';



$s= str_replace('С?','fgr43443443',$input);
$s= mb_convert_encoding($s, "windows-1251", "utf-8");
$s= str_replace('fgr43443443','ш',$s);


echo $s;

PS不要忘记,在PHP文件的编码应该是UTF8。 同时,在HTML的头,插入用于UTF8标准的声明

<meta http-equiv="content-type" content="text/html; charset=UTF-8">


Answer 4:

大多数解决方案都缺乏转化为单字节编码。 我用mb_convert_encoding($字符串 '窗口-1251'),以UTF-8在我的情况下转换。

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;

}


Answer 5:

试试这个,对我的作品!

$result = str_replace ('€', '€' , $result);


文章来源: PHP Convert Windows-1251 to UTF 8