php - PHP转换为utf8两字节编码数据

标签 php encoding utf-8

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

×××××

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/>";  

Original: øåñÉé

iconv detect: øåñÉé

ASCII convert:

MB Convert: øÃ¥ñÃâ°Ã©

ASCII convert:

MB Convert: øåñ�?é

值得注意的是,这只是针对特殊字符,所有 abcdefghijkl... 都很好,只是重音符号和特殊字符变得疯狂。

最佳答案

啊,我有它 - 但万一将来有人需要它:

$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)

关于php - PHP转换为utf8两字节编码数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34433621/

相关文章:

php - 连续显示3张图片的问题

Python3 - 无法读取 docx、odt 文件 - UnicodeDecodeError : 'utf-8' codec can't decode byte 0xea in position 10: invalid continuation byte

c++ - 读取包含未知 UTF8 字符串和已知 ASCII 混合的文件

java - Apache/Tomcat服务器中显示汉字

ruby-on-rails - Rails 模型中的 UTF-8 编码

php - 如何在 PHP 中从字符串数组创建对象

PHP/MYSQL AJAX 聊天

php - 如何在php中使用间隔刷新div

Python编码注释格式

node.js - Node 二进制Buffer.toString(),转换回Buffer