【问题标题】:Convert from Unicode to UTF8 [closed]从 Unicode 转换为 UTF8 [关闭]
【发布时间】:2013-11-14 11:11:53
【问题描述】:

我正在使用 C# 2010,想将 textBox2.Text 转换为 UTF8 字符串...

byte[] utf = System.Text.Encoding.UTF8.GetBytes(textBox2.Text);
        byte[] utf8Bytes = Encoding.UTF8.GetBytes(textBox2.Text);
        String str = Encoding.UTF8.GetString(utf8Bytes);
//            MessageBox.Show(str);
        //sTopicNewsTxt = "-1 RENDERER*TREE*@TOP_NEWS_DATA01*GEOM*TEXT SET "  +          Encoding.UTF8.GetString(utf8Bytes);
        //MessageBox.Show(sTopicNewsTxt);            
        UTF8Encoding utf8 = new UTF8Encoding();
        //byte[] var = utf8.GetBytes(textBox2.Text);
        sTopicNewsTxt = "-1 RENDERER*TREE*@TOP_NEWS_DATA01*GEOM*TEXT SET " + Convert.ToString(utf[0]);

我使用的是印地语 utf8 字体...

感谢和问候。

【问题讨论】:

  • 那么你的问题是什么? (你为什么要在Stringbyte[] 之间来回进行所有这些不必要的转换?)
  • Encoding.UTF8.GetBytes 是正确的(或至少一种正确的)使用方法:请说明这对您不起作用的原因。
  • 你想要达到的最终结果是什么?

标签: c# .net utf-8


【解决方案1】:

你的结果在方法的第一行。 utf8Bytes 您的文本采用 UTF-8 编码。

.NET 中没有“UTF-8 字符串”之类的东西。字符串在幕后是 Unicode (UTF-16)。如果您在谈论特定的编码,那么您将回到字节数组。不要混淆两者。

【讨论】:

  • 没错。编码的不是字符串,而是字节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2017-06-20
相关资源
最近更新 更多