PHP和JS中是否有统一的方法来转换unicode字符,所以在编码unicode字符串后两端的结果是一样的?
两端是否有任何编码/解码技术共享相同的机制?
我一直在尝试使用 PHP 的 bin2hex() 和 hex2bin() 以及 JS 中相同的相应手动函数,但它不适用于 unicode 字符?
PHP和JS中是否有统一的方法来转换unicode字符,所以在编码unicode字符串后两端的结果是一样的?
两端是否有任何编码/解码技术共享相同的机制?
我一直在尝试使用 PHP 的 bin2hex() 和 hex2bin() 以及 JS 中相同的相应手动函数,但它不适用于 unicode 字符?
是的,它被称为 utf-8。如果您将所有文档编码为 utf-8 并将所有数据存储为 utf-8,那么您应该清楚。问题是,默认情况下,php 期望字符串为 latin1,因此您需要更改一些内容(例如发送Content-Type
标头等)
我提到了这个问题:
如何使用 javascript 将特殊的 UTF-8 字符转换为等效的 iso-8859-1?
以下功能帮助了我:
fixed_string = decodeURIComponent(escape(utf_string));
utf_string = unescape(encodeURIComponent(original_string));
用于编码和解码查询字符串的 escape 和 unescape 函数是为 ISO 字符定义的,而更新的 encodeURIComponent 和 decodeURIComponent 是为 UTF-8 字符定义的。
这是一个 hack,但它有效。
PHP
rawurlencode($theString)
JS
decodeURIComponent(theString)