50分跪求:在c#程序中怎么得到一个汉字的utf-8编码?

来源:百度知道 编辑:UC知道 时间:2024/06/02 21:09:27
我想得到中文词组(字符串st)的utf-8 编码
但是结果wordUtf8 的值还是我要得到的中文词组(st)的值,而不是该词组的utf-8编码
下面是我的代码
st = myReader2.ReadLine();
wordUtf8 = null;
for (int m = 0; m < st.Length; m++)
{
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Encoding utf8 = Encoding.UTF8;
Byte[] cs = Encoding.Convert(gb2312, utf8, gb2312.GetBytes(st.Substring(m, 1)));
wordUtf8 += utf8.GetString(cs , 0,cs.Length);
}

我调试了很久,但是始终没有解决。
恳求大家的帮忙,先谢了!!

首先 在C#里面所有的字符都是UTF-8编码的 所以你只要转成int 并且用16位格式化输出即可得到unicode的16进制代码

string txt = this.textBox1.Text;
UnicodeEncoding unicode = new UnicodeEncoding();
Byte[] encodedBytes = unicode.GetBytes(txt);
StringBuilder sb = new StringBuilder();
int i=0;
int count=encodedBytes.Length;
do
{
string temp = string.Format(@"\u{1:x2}{0:x2} ", encodedBytes[i], encodedBytes[i + 1]);
sb.Append(temp);
i += 2;
} while (i + 2 <= count);

this.textBox2.Text = sb.ToString();

这是我以前写的转unicode的,稍微改一下就能用