我的一个应用程序有中文网站的链接。这些网站使用GB2312编码。不幸的是,WP7上的.Net框架不支持GB2312编码,因此以下功能不起作用。
private string ToGB2312(string character) {
byte[] bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(character);
return '%' + BitConverter.ToString(bytes).Replace('-', '%');
}
相反,我将使用Web服务重定向查询:
1. User clicks a link in my app (法)
2. App opens the browser on mysite.com/redirect?codepoint=%E6%B3%95
3. mysite.com redirects the user to chinesewebsite.com/page?codepoint=%B7%A8
那是因为法在utf-8中是%E6%B3%95,在GB2312中是%B7%A8。
我的问题是,如何在php中进行(3.)
?
答案 0 :(得分:1)
现在没有PHP环境,无法测试。
但我认为你需要这些步骤:
1. $gb = mb_convert_encoding(urldecode($_GET['codepoint']), 'GB2312', 'UTF-8');
2. $gb_url = urlencode($gb);
3. Redirect with $gb_url