将UTF-8翻译为GB2312

时间:2013-08-24 03:59:19

标签: php encoding utf-8 gb2312

我的一个应用程序有中文网站的链接。这些网站使用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.)

1 个答案:

答案 0 :(得分:1)

现在没有PHP环境,无法测试。

但我认为你需要这些步骤:

1. $gb = mb_convert_encoding(urldecode($_GET['codepoint']), 'GB2312', 'UTF-8');
2. $gb_url = urlencode($gb);
3. Redirect with $gb_url