我面临use JSON::XS qw(encode_json);
中encode_json函数的问题。我们有一个基于Web的项目,以Perl,JavaScript,jQuery和MySQL作为后端。使用encode_json后,重音字符得到双重编码
在应用程序的特定屏幕中,用户的名称会失真。
问题是用户名是西班牙文,并有重音字符。 我们正在保存数据库的表是旧表,并具有字符集latin 1,但是当我读取数据时,我使用了转换并将其转换并编码为UTF-8格式。
select CONVERT(CAST(CONVERT(u.last_name USING latin1) AS BINARY) USING utf8) AS last_name from user where user_id = 'XXX'
在我存储数据库结果的结构中,数据显示正常。
{ last_name => Cvas García}
这种结构被传递给这使得页面
$data_json = encode_json($data)
当我打印$data_json
,重音字符再次扭曲javascript函数。
"user_permissions":[{"last_name":"Cvas GarcÃa"}]},
任何人都可以帮我解决这个问题,无论是在Mysql或perl或JavaScript代码?
如果您使用'is_utf8',则会出错。 – ikegami