起初我认为问题是当我从ajax调用返回echo json_encode($ row)时,结果是ñ被更改为NULL。但经过测试,我发现问题在此之前存在。
在示例php文件中:
$test = "Nuñez"
echo $test
结果只是Nu ez
我一直在搜索,但没有一个建议的解决方案有效。像:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
ob_start('mb_output_handler');
或<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
或header('content-type: text/html; charset: utf-8');
。还有一些我已经忘记的解决方案,相信我,我做了很多尝试。
这只是它的开始,我希望这不会是mysql的问题,因为我的数据库是在utf-8中所以是我的$ mysqli charset。但我想我不能对ajax json_encode说同样的话。但是没关系,一次只有一个问题。任何人都可以帮助我。非常感谢!
问题已解决 我只需在Notepad ++中设置“在UTF-8中编码”,就像之前在“ANSI中编码”一样。
答案 0 :(得分:6)
对我来说
$test = "Nuñez";
echo $test;
显示Nuñez
您可以尝试
$test = "Nuñez";
echo utf8_decode($test);
或
$test = utf8_encode("Nuñez");
echo utf8_decode($test);
答案 1 :(得分:3)
试试这个
它适用于我。
$test = "Nuñez";
echo html_entity_decode(htmlentities($test));
答案 2 :(得分:2)
在浏览器中正确显示拉丁字符,如ñÑáéóúú..等等,你必须使用iso-8859-1而不是UTF-8编码 http://www.w3schools.com/tags/ref_entities.asp
最好的问候!答案 3 :(得分:1)
连接到mysql数据库时,将charset设置为utf-8,如 - &gt;
$sql_con = mysql_connect($sql_host, $sql_user, $sql_pass);
mysql_query('SET NAMES utf8');
答案 4 :(得分:0)
考虑设置default_charset,这对我有用
ini_set(&#39; default_charset&#39;,&#39; utf-8&#39;);
答案 5 :(得分:0)
使用字符串“CASTAÑO”面对相同的问题。
我尝试过发布解决方案。
我使用了ini_set('default_charset', 'utf-8');
指令。