将 UTF-8 转换为简体中文 (GB2312)

发布于 2024-09-02 03:09:02 字数 73 浏览 2 评论 0原文

有没有办法在 C# 中将 UTF-8 字符串转换为简体中文 (GB2312)。非常感谢任何帮助。

问候 乔西什·乔治

Is there a way to convert UTF-8 string to Chinese Simplified (GB2312) in C#. Any help is greatly appreciated.

Regards
Jyothish George

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

末蓝 2024-09-09 03:09:02

首先要注意的是,.NET 中不存在“UTF-8 字符串”这样的东西。 .NET 中的所有字符串实际上都是 UTF-16。但是,.NET 提供了 Encoding 类,允许您将二进制数据解码为字符串,并在以后重新编码。

Encoding.Convert 可以将表示使用一种编码编码的文本的字节数组转换为使用不同编码编码的相同文本的字节数组。这就是你想要的吗?

或者,如果您已经有一个字符串,您可以使用:

byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(text);

如果您可以提供更多信息,那将会很有帮助。

The first thing to be aware of is that there's no such thing as a "UTF-8 string" in .NET. All strings in .NET are effectively UTF-16. However, .NET provides the Encoding class to allow you to decode binary data into strings, and re-encode it later.

Encoding.Convert can convert a byte array representing text encoded with one encoding into a byte array with the same text encoded with a different encoding. Is that what you want?

Alternatively, if you already have a string, you can use:

byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(text);

If you can provide more information, that would be helpful.

栀梦 2024-09-09 03:09:02

试试这个;

public string GB2312ToUtf8(string gb2312String)
{
    Encoding fromEncoding = Encoding.GetEncoding("gb2312");
    Encoding toEncoding = Encoding.UTF8;
    return EncodingConvert(gb2312String, fromEncoding, toEncoding);
}

public string Utf8ToGB2312(string utf8String)
{
    Encoding fromEncoding = Encoding.UTF8;
    Encoding toEncoding = Encoding.GetEncoding("gb2312");
    return EncodingConvert(utf8String, fromEncoding, toEncoding);
}

public string EncodingConvert(string fromString, Encoding fromEncoding, Encoding toEncoding)
{            
    byte[] fromBytes = fromEncoding.GetBytes(fromString);
    byte[] toBytes = Encoding.Convert(fromEncoding, toEncoding, fromBytes);

    string toString = toEncoding.GetString(toBytes);
    return toString;
}

来源在这里

Try this;

public string GB2312ToUtf8(string gb2312String)
{
    Encoding fromEncoding = Encoding.GetEncoding("gb2312");
    Encoding toEncoding = Encoding.UTF8;
    return EncodingConvert(gb2312String, fromEncoding, toEncoding);
}

public string Utf8ToGB2312(string utf8String)
{
    Encoding fromEncoding = Encoding.UTF8;
    Encoding toEncoding = Encoding.GetEncoding("gb2312");
    return EncodingConvert(utf8String, fromEncoding, toEncoding);
}

public string EncodingConvert(string fromString, Encoding fromEncoding, Encoding toEncoding)
{            
    byte[] fromBytes = fromEncoding.GetBytes(fromString);
    byte[] toBytes = Encoding.Convert(fromEncoding, toEncoding, fromBytes);

    string toString = toEncoding.GetString(toBytes);
    return toString;
}

source here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文