编程小问题系列(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环境不熟,但是也有很重要的是............
书上得来终须浅,须知此事要躬行
于是我查了查关键字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环境不熟,但是也有很重要的是............
书上得来终须浅,须知此事要躬行
相关文章推荐
- Serv-U 8 不支持以中文命名文件上传问题的解决
- 解决Struts中ApplicationResources_properties文件不支持中文问题
- 关于在eclipse中解决struts中ApplicationResources.properties文件的中文支持问题
- 解决Struts中ApplicationResources.properties文件不支持中文问题
- 关于asp.net中js文件中文显示支持的问题。
- 【HTTPClient 系列】HttpClient4.2.5上传文件,无中文文件名问题
- 关于Android编程文件路径中含有中文字符的问题解决办法
- 解决Struts中ApplicationResources.properties文件不支持中文问题
- 解决Struts中ApplicationResources.properties文件不支持中文问题
- Serv-U 8 不支持以中文命名文件上传问题的解决
- sublime text 2中添加gb18030编码的支持(解决安装gbk编码支持后部分中文文件依然乱码的问题)
- VS2005 FSTREAM 不能打开中文路径名文件的问题!
- Mysql中文乱码问题完美解决方案【需要在my.cnf文件中设置client和mysqld的default-character-set=utf8,建数据库和表的时候也需要制定好编码】
- Java读写.properties文件实例,解决中文乱码问题
- Office 2007的另外一个问题: 对97以前的文件格式彻底不支持
- 【转】Myeclipse 查看Jar文件里面源码中文乱码 问题解决
- Java文件上传下载删除(下载中文乱码问题)
- dom4j写文件的编码问题(主要指中文)的解决
- Java Web中使用JSPSmartUpload控件实现文件的上传和下载(解决了中文乱码问题)(JSP页面采用GBK编码)