转换为utf8双字节编码数据PHP

时间:2015-12-23 10:30:21

标签: php encoding utf-8

我在数据库中有一些数据,如下所示:

AA¥Ã±Ã‰Ã©

this ø来判断应该是Ÿ。我不确定一些事情,但到目前为止,我的研究似乎指向这样的事实,即这些是使用两个字节UTF8编码,但显示为单个字节,因此一个字符(Ÿ)显示为两个(Ã和¸)。

那我该怎么转换呢?目前我尝试了以下内容:

$text = "øåñÉé"; 
echo "Original: " . $text . "<br/>";
echo "iconv detect: " . iconv(mb_detect_encoding($text, mb_detect_order(), true), "UTF-8", $text) . "<br/>";
echo "ASCII convert: " . iconv('ASCII', 'UTF-8//IGNORE', $text) . "<br/>";  
echo "MB Convert: " . mb_convert_encoding($text, "UTF-8", "iso-8859-1") . "<br/>";  

// Wrong way around?

echo "ASCII convert: " . iconv('UTF-8', 'ASCII//IGNORE', $text) . "<br/>";  
echo "MB Convert: " . mb_convert_encoding($text, "iso-8859-1", "UTF-8") . "<br/>";  
  

原文:ååɉ

     

iconv detect:øåÉÉ

     

ASCII转换:

     

MB转换:øåÃÂÃÃð?

     

ASCII转换:

     

MB转换:øåñ ?é

值得注意的是,这只是针对特殊角色,所有abcdefghijkl ....都很好,它只是重音和特殊的角色疯狂。

1 个答案:

答案 0 :(得分:1)

啊,我拥有它 - 但是如果将来有人需要它:

$text = "Jørgen Furøy Håkansson Sahlén";

echo "Original: ". $text . "<br/>";
echo "Windows iconv: " . iconv("UTF-8","Windows-1252",$text) . "<br/>"; 

给出:

Original: Jørgen Furøy Håkansson Sahlén
Windows iconv: JørgenFurøy Håkansson Sahlén

所有重要的Windows-1252

iconv("UTF-8","Windows-1252",$text)