0

您好我正在使用 phonegap 开发一个移动应用程序,我正在通过 ajax (jsonp) 查询 MySQL 数据库。但是,当返回特殊字符时出现问题,因为它们显示为“?” 取而代之的是例如Ż。

目前在我的 PHP 中我已经添加了这个,但是它并没有成功: header('content-type: application/json; charset=UTF-8');

是否有人知道可以使用的任何其他字符集,其中包括上述特殊字符?

4

3 回答 3

2

第一件事是第一

a)修复数据库表确保使用正确的字符集定义的表,例如

CREATE TABLE `types` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8

b)连接到数据库后,确保以下事项

设置名称'utf8';

[我也跟着跑]

 SET  character_set_client  ='utf8',
 character_set_connection ='utf8',
 character_set_database  ='utf8',
 character_set_results   ='utf8',
 character_set_server    ='utf8',
 collation_connection    ='utf8_general_ci',
 collation_database      ='utf8_general_ci',
 collation_server        ='utf8_general_ci'

c) 最后为 html 页面设置正确的内容类型

希望对你有帮助

于 2012-12-27T06:43:50.577 回答
0

您正在使用 MySQL 数据库?因此,尝试为数据库连接设置一个 utf8 字符集,例如:

$conn = mysql_connect('localhost','user1','pass1',TRUE); 
mysql_set_charset('utf8',$conn); 

或者尝试 UTF-8 编码

string utf8_encode ( string $data )

参数:

data
An ISO-8859-1 string.

返回值:

Returns the UTF-8 translation of data.
于 2012-12-26T21:51:04.913 回答
0

根据 JSON 实现标准,所有 JSON 数据必须以 UTF 格式编码,默认格式为 UTF-8。但您始终可以使用其他 UTF 格式,例如 UTF-32BE、UTF-16BE、UTF-32LE、UTF-16LE。

有关详细标准和信息,请访问ietf 标准

于 2012-12-27T06:06:32.030 回答