日期:2014-05-20  浏览次数:20801 次

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);
}