我有德语数据库。我从数据库中获取数据并创建数组。问题是一些德国人字符被转换为特殊字符。这就是为什么不能在json中编码数组。我也试过把标题放在德语中,但它是出于显示目的,所以它不起作用。
请检查下面创建的数组
如果我手动复制并粘贴相同的字符串并创建数组而不是创建完美的数组。你能解决问题吗?
使用后
htmlentities($ str,ENT_QUOTES,'UTF-8',false);
你可以看到显示两个字符串都是从数据库中获取的,一个是使用htmlentities编码的。你可以看到数组的最后一个索引是空的,所以htmlentities无法对它进行编码。
答案 0 :(得分:0)
你需要逃避你的字符串。试试这个:
// $str, encode quotes, UTF-8 encoding, false (do not double encode).
echo htmlentities($str, ENT_QUOTES, 'UTF-8', false);
用你的字符串替换$ str。这应该可以解决您的问题。
答案 1 :(得分:0)
黑钻石中的问号通常由
引起SET NAMES latin1
或以其他方式挑选(或默认为)latin1,CHARACTER SET
是什么并不重要。)和<meta charset=UTF-8>
。一个简单的解决方法是将最后一步更改为<meta charset=ISO-8859-1>
,从而仅使用latin1,而不是utf8。那&#34;好的&#34;对于西欧来说,但不会为亚洲工作。
&#34;对&#34;修复就是使用utf8mb4来完成步骤。