如何将 latin1 字符集关联数组从 php 传递到 javascript?
Posted
技术标签:
【中文标题】如何将 latin1 字符集关联数组从 php 传递到 javascript?【英文标题】:How to pass a latin1 charset associative array from php to javascript? 【发布时间】:2014-08-07 14:18:19 【问题描述】:问题是我在 db 中有 latin1 字符集。 php 中的默认输出是 utf-8。 即使我使用 php iconv,它也会返回 null,因为新字符串应该已经是 utf-8。
转换数据库需要停机。
我不能使用 json_encode,因为字符串是格式错误的 utf-8,包含 �。
我需要一个替代方法来临时解决问题,而无需迁移数据库。
我需要将关联数组传回 JS。我正在使用 Ajax 获取数据。
【问题讨论】:
【参考方案1】:您可以在将数据传递给json_encode
之前转换编码(这确实需要UTF8 编码的字符串)。使用the mb_convert_encoding
function 就可以了:
$utf8String = mb_convert_encoding(
$sourceString,
'UTF8',
'<src encoding>' //in your case: ISO-8859-1
);
同时,制定一个如何将数据库转换为 UTF-8 的策略,因为它会为您省去很多在整个项目中无休止地处理不同编码的痛苦。
【讨论】:
【参考方案2】:将驱动程序的编码(客户端)显式设置为 UTF-8。
示例:
PDO/PostgreSQL PDO/mysql【讨论】:
以上是关于如何将 latin1 字符集关联数组从 php 传递到 javascript?的主要内容,如果未能解决你的问题,请参考以下文章
当字符串包含 PHP 中的重复键时,如何将字符串转换为关联数组? [复制]