用于汉字的PHP URL编码
我正在创建一个php应用程序,其中包括发送中文字符作为url参数 我必须发送如下查询:用于汉字的PHP URL编码,php,utf-8,urlencode,url-encoding,Php,Utf 8,Urlencode,Url Encoding,我正在创建一个php应用程序,其中包括发送中文字符作为url参数 我必须发送如下查询: http://xyz.com/?q=新 但是xyz.com上的脚本不会自动编码汉字。因此,我需要显式地发送一个编码字符串作为参数。它变成: http://xyz.com/?q=%E6%96%B0 问题是,PHP无法正确编码汉字 我试过urlencode()和rawurlencode()。但是他们将%D0%C2(不适用于我的目的)作为输出,而不是%E6%96%B0(适用于xyz.com) 我正在使用网站创建后一
http://xyz.com/?q=新代码>
但是xyz.com上的脚本不会自动编码汉字。因此,我需要显式地发送一个编码字符串作为参数。它变成:
http://xyz.com/?q=%E6%96%B0
问题是,PHP无法正确编码汉字
我试过urlencode()
和rawurlencode()
。但是他们将%D0%C2
(不适用于我的目的)作为输出,而不是%E6%96%B0
(适用于xyz.com)
我正在使用网站创建后一个编码字符串
我还定义了标题('Content-Type:text/html;charset=gb2312')
以正确显示汉字
我能做些什么来正确地编码这个汉字吗
谢谢
PS:我是一个相对较新的程序员,不懂中文。您正在使用您在标题中指定的字符集进行URL编码。%D0%C2为新 在gb2312中;%E6%96%B0是新 在UTF-8中。将您的字符集切换到UTF-8,您应该可以解决此问题,并且仍然能够显示简体中文汉字。为了重现您的问题,我创建了一个简单的PHP文件:
<?php
var_dump(urlencode('新'));
?>
首先,我使用UTF8编码并得到%E6%96%B0
。后来我改成了GB2312,得到了%D0%C2
至少,他们似乎使用了支持UTF8的JavaScript,因此也返回%E6%96%B0
PS:当从GB2312更改为UTF8时,一些编辑器可能会破坏一些国际化代码。因此,请确保在转换之前有一份您的文件副本