php中包含ñ等特殊字符

时间:2012-11-03 10:13:04

标签: php utf-8 header special-characters json

起初我认为问题是当我从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中编码”一样。

6 个答案:

答案 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');指令。

  • 所选记录显示为“ CASTA.O”
  • 使用 utf8-decode 显示“ CASTA?O”
  • 使用 utf8_encode 显示正确的字符串“CASTAÑO”