zhaoyao83
04-08-2007, 04:23 AM
考察如下两个代码片段:
1.
string s="\u4f5c\u4e3a\u4e00\u7ea7\u5206\u7c7b";
textBox2.Text = s;
//运行程序:结果textBox2显示“作为一级分类”
2.
private void button1_Click(object sender, EventArgs e)
{
string s = textBox1.Text;
textBox2.Text = s;
}
//运行程序:在textBox1中粘贴内容 \u4f5c\u4e3a\u4e00\u7ea7\u5206\u7c7b
textBox2显示:\u4f5c\u4e3a\u4e00\u7ea7\u5206\u7c7b
问题,同一个字符串为什么显示的结果不一样呢,我想在textBox1中站如\uXXXX形式的字符串,在textBox2中显示出中文,该如何做。
实际上我是想要一个unicode字符串转换的效果。
t-xguo@prcvap.microsoft.com
04-09-2007, 05:47 AM
您好:
由于TextBox并不会自动解析转义字符'\', TextBox认为'\'是一个单独的字符,所以当直接在TextBox上赋值,而不是用TextBox的Text属性时,TextBox将把'\'转化为'\\',所以将产生无法正确显示中文字符的错误。
解决该问题的方法: 获得从窗口赋予TextBox的字串后,解析该字串,提取"\\u"后的四位16进制数,转换的相应的Unicode 字符:
string s = textBox1.Text;
这是s ="\\u4f5c\\u4e3a\\u4e00\\u7ea7\\u5206\\u7c7b";
比如提取了第一个四位16进制数据4f5c, 用Int的Parse方法:
int i = int.Parse("4f5c", System.Globalization.NumberStyles.HexNumber);
char c = (char)i;
这是c 的值为'作'.
郭轩
在线技术支持工程师
微软全球技术支持中心
---------------------------------------------------------------------------------------
我们的服务时间:周一至周五9:00-18:00(节假日除外)。我们将在两个工作日(48小时)内提供初始回应,并和您一起研究并解决问题。更多微软新闻组技术支持信息,请访问:http://support.microsoft.com/gp/newsgroupsupport/zh-cn.
回帖时,请在您的新闻组阅读器中使用“回复组(Reply to Group)”,这将帮助其他用户从您的提问中获益
---------------------------------------------------------------------------------------
本贴子以”现状”提供且没有任何担保,同时也没有授予任何权利。
t-xguo@prcvap.microsoft.com
04-11-2007, 10:23 AM
您好:
关于此主题,您是否还有疑问?如有任何疑问,欢迎在微软中文新闻组讨论。
郭轩
在线技术支持工程师
微软全球技术支持中心
---------------------------------------------------------------------------------------
我们的服务时间:周一至周五9:00-18:00(节假日除外)。我们将在两个工作日(48小时)内提供初始回应,并和您一起研究并解决问题。更多微软新闻组技术支持信息,请访问:http://support.microsoft.com/gp/newsgroupsupport/zh-cn.
回帖时,请在您的新闻组阅读器中使用“回复组(Reply to Group)”,这将帮助其他用户从您的提问中获益
---------------------------------------------------------------------------------------
本贴子以”现状”提供且没有任何担保,同时也没有授予任何权利。