将UTF-8转换为GB2312


Translate UTF-8 to 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.)

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

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

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