读书人

unicode编码有关问题

发布时间: 2012-03-30 17:32:09 作者: rapoo

unicode编码问题
很简单的,对于你来说肯定容易的很,
比如c#里
string = "\u4995\u50a3\u57ae\u5eac ";
string = @ "\u4995\u50a3\u57ae\u5eac ";

2个的效果是不同的,第一个会得到一串乱码unicode编码的字符串,
第2个是得到一个字符串就是那本身

我要得到第一种情况的,

建立一个Form窗体,
textbox1输入:\u4995\u50a3\u57ae\u5eac
按下按钮-->
textbox2得到那串乱码

别想当然呀,做过才知道

[解决办法]
string str = textbox1.Text;
textbox2.Text = " ";
for(int i=0;i <str.Length/6;i++)
{
textbox2.Text += (char)Convert.ToInt32(str.Substring(i*6+2,4),16);
}
[解决办法]
在界面上假如有两个TextBox及一个Button,分别为textBox1,textBox2,button1
当在textbox1中输入 "\u4995\u50a3\u57ae\u5eac "时,按btton1在textBox2里显示textBox1.Text表示的字符串,可以用如下的代码:

private void button1_Click(object sender, EventArgs e)
{
string[] strs = this.textBox1.Text.Split(new string[] { @ "\u " }, StringSplitOptions.RemoveEmptyEntries);
char[] chs = new char[strs.Length];
for (int i = 0; i < strs.Length; i++)
{
if (strs[i].Length > 0)
{
chs[i] = (char)int.Parse(strs[i], System.Globalization.NumberStyles.HexNumber);
}
}
this.textBox2.Text = new string(chs);
}

读书人网 >C#

热点推荐