6

起初我认为问题在于当我从 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 字符集也是如此。但我想我不能对 ajax json_encode 说同样的话。但没关系,一次一个问题。任何人都可以帮助我。非常感谢!

问题解决了我只需要在 Notepad++ 中设置“UTF-8 编码”,就像之前在“ANSI 编码”中一样。

4

6 回答 6

6

为了我

$test = "Nuñez";
echo $test;

显示努涅斯

你可以试试

$test = "Nuñez";
echo utf8_decode($test);

或者

$test = utf8_encode("Nuñez");
echo utf8_decode($test);
于 2012-11-03T10:25:19.467 回答
3

试试这个

它对我有用。

$test = "Nuñez";

echo html_entity_decode(htmlentities($test));
于 2012-11-03T10:27:52.923 回答
2

要在浏览器中正确显示 ñ Ñ á é í ó ú 等拉丁字符,您必须使用 iso-8859-1 而不是 UTF-8 编码 http://www.w3schools.com/tags/ref_entities.asp

最好的祝福!

于 2014-01-17T20:22:05.200 回答
1

当你连接到你的 mysql 数据库时,将 charset 设置为 utf-8,比如 ->

$sql_con = mysql_connect($sql_host, $sql_user, $sql_pass);
mysql_query('SET NAMES utf8');
于 2012-11-03T10:29:19.723 回答
0

考虑设置default_charset,这对我有用

ini_set('default_charset', 'utf-8');

于 2017-09-24T07:22:38.650 回答
0

字符串“CASTAÑO”面临同样的问题。

我已经尝试过发布的解决方案。

我使用了ini_set('default_charset', 'utf-8');指令。

  • 所选记录显示“CASTA�O”
  • 使用utf8-decode显示“CASTA?O”
  • 使用utf8_encode显示正确的字符串“CASTAÑO”
于 2019-09-12T22:54:45.597 回答