您的位置:首页 > 编程语言

编程小问题系列(1)——XAML文件不支持中文

2009-09-29 23:44 169 查看
今天想搞个颜色对话框。当然按照我的习惯是绝对不会自己轻易做的。能拿来就想办法拿来。
于是我查了查关键字WPF和ColorPicker
查到了以下链接:
http://msdn.microsoft.com/en-us/library/ms771620.aspx MSDN自带的例子
http://www.telerik.com/products/wpf/colorpicker.aspx RadControl
http://www.codeproject.com/KB/WPF/WPFColorPicker.aspx codeproject
这三个都可以用的。本来想选用RadControl 我的机器上也安装了有 但是但每回使用都会拼命提示这是他的东东 你要记得注册喔!
于是毅然抛弃!
经过比较MSDN的还是好一些。于是选用了MSDN的例子。
但是遇到了一个问题。他的颜色对话框,有两个OK Cancel。于是我决定把他改成中文。


结果编译报错,只是简单的把OK改成确认而已。
Error 4 'Invalid character in the given encoding. Line 16, position 28.' XML is not valid.
我半生不熟的英语加上直觉 知道是字符出现了问题。于是我就想修改,可是不知道如何下手。于是在群里高呼“三声法拉”(很有用的喔 大家可以试试


找到了解决的办法。如下,我们选中这个xaml文件。然后在菜单里另存该文件 如下图所示:



注意是SaveWithEncoding....注意看到它的encoding是GB312,传说中的大虾说要把它改成UTF-8



于是依言做之 果然成功。
不知道各位会不会遇到这样的问题。写下来供大家分享。
看了后面的回复,感觉自己还要再继续一下......分析一下原因。这个原因还是出在编码问题上。
我们接触的最多的是ASCII码,一共规定了128个字符的编码,比如空格“SPACE”是32(十进制的32,用二进制表示就是00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。体的可以到这个网页上去查下:http://www.nengcha.com/code/ascii/all/
结论:ASCII码是用1个字节(8bit)表示字母的。
而原来这个XAML文件使用的编码方式是GB2312,GB2312编码的方法我就不具体说了,具体也可以参见http://zh.wikipedia.org/zh-cn/GB_2312
但是至少知道一个结论,他在表示中文的时候,由于中文太多一个字节表示不过来,他用了2个字节来表示。对于英文字母,他为了和ASCII码兼容,则只
用了1个字节来表示。因此他是一种混合编码。
UTF-8采用的是1~4个字节来进行编码的。
字符编码确实是个比较基础的问题,想想Charles Peztold的经典书Windows程序设计,开篇讲的就是字符编码的问题。以前学习Com的时候,也经常在char,wchar
BSTR当中彷徨不觉。可是到现在遇到问题,仍然还是彷徨一阵。原因诸多,比如对VS2008环境不熟,但是也有很重要的是............
书上得来终须浅,须知此事要躬行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐