繁体   English   中英

PHP:特殊字符转换

[英]PHP: Special Characters Conversion

我遇到了这样的问题:我使用Javascript Ajax请求将特殊字符转换为URL上的参数,然后将其读取到PHP。 字符是“Ñ”。

在我的JavaScript中,我将参数设置为escape('PiÑa')并转换为“ Pi%D1a”

当我在php中阅读它时,带有问号的菱形将会出现。 这是我的阅读方式。

   escape(message) // Message being the "Pi%D1a"

就像我说的那样,出现了一个奇怪的字符,即当我将其保存到数据库postgreSQL时,它会发出错误消息。 我该如何解决?

D1是“Ñ”字符的ISO-8859-1(“ Latin-1”)编码形式。
“带问号的菱形”(。)是Unicode替换字符。 每当您看到一个字符时 ,它都表明浏览器/编辑器/正在解释的文本正在尝试将文本解释为Unicode ,并且遇到了在假定的Unicode编码中无效的字符。

换句话说,该字符实际上是Latin-1编码的,但是您要告诉浏览器它(可能是)UTF-8编码的。 您的编码不匹配。 通过Content-Type: text/html; charset=XXX告诉浏览器正确的编码Content-Type: text/html; charset=XXX Content-Type: text/html; charset=XXX标头,或者在使用字符之前将字符从Latin-1转换为UTF-8。

您是否尝试过使用urldecode($message)

%D1是Ñ的URL编码表示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM