您好我正在使用phonegap开发移动应用程序,我通过ajax(jsonp)查询MySQL数据库。但是当返回特殊字符时我遇到问题,因为它们显示为“?”相反,例如Ż。
在我的PHP中,我已经添加了这个,但它没有做到这一点:
header('content-type: application/json; charset=UTF-8');
是否有人知道可以使用的任何其他字符集,其中包括上述特殊字符?
答案 0 :(得分:2)
首先是第一件事
a)修复db表 确保使用正确的字符集定义表 e.g
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)连接到db后确保以下内容
[我也运行以下]
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)最后设置适当的content type for the html page
希望这会对你有所帮助
答案 1 :(得分: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.
答案 2 :(得分:0)
根据JSON实现标准,所有JSON数据必须以UTF格式编码,默认格式为UTF-8。 但您可以始终使用其他UTF格式,例如UTF-32BE,UTF-16BE,UTF-32LE,UTF-16LE。
有关详细的标准和信息,请访问ietf standard。