JSON编码问题

时间:2012-12-26 21:42:04

标签: php javascript jquery html5 cordova

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

在我的PHP中,我已经添加了这个,但它没有做到这一点: header('content-type: application/json; charset=UTF-8');

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

3 个答案:

答案 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 NAMES '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)最后设置适当的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