在描述中获取“â”等字符。
为了转换我尝试使用utf8_encode()的那些,它将这个租船者转换为另一个奇怪的模式。也尝试使用regx和设置字符 它没有用。
解决问题的任何快速解决方案?
感谢。
答案 0 :(得分:2)
最有可能的是,您的字符串包含使用UTF-8编码的字符
字符集。 UTF-8有一些多字节字符。例如,
欧元符号€
以UTF-8表示,其中包含三个字节E2,
82, AC
。
但是你的软件正在使用一个字节来解释字符串
编码,如ISO-8859-1。这会导致3字节的每个字节
字符被解释为单独的字符。 E2
,为
例如,当它实际上只显示为â
时
3字节字符的第一个字节。
utf8_encode()不是解决方案。它需要ISO-8859-1 编码的字符串并返回UTF-8字符串。你已经有了UTF-8 字符串。
你有几个选择。
一,修复使用该字符串的任何内容,以便它期望字符串 包含UTF-8。这将适当地保留那些字符 在字符串中。例如,如果您将字符串作为一部分写入 一个网页,确保网页的字符编码是UTF-8。
二,将字符串转换为您实际使用的编码。 例如,您可以将字符串从UTF-8转换为ISO-8859-1 使用utf_decode()。缺点是ISO-8859-1不能 表示与UTF-8一样多的不同字符,因此有些字符 将在解码中丢失。
答案 1 :(得分:0)
尝试我在处理utf8时写的这个函数
function removeuni($content){
preg_match_all("/[\x{80}-\x{3000}]/u", $content, $matches);
foreach($matches[0] as $match){
$content = str_replace($match, mb_convert_encoding($match, "HTML-ENTITIES","UTF-8"), $content);
}
return $content;
}