zoukankan      html  css  js  c++  java
  • silverlight generic.xaml 包含中文 编译错误的问题

    发现我在一个dll工程里面新建一个xaml文件起名成generic.xaml 如果这个xaml里面存在中文则会编译错误,发现这样建立的xaml使用的是gb2312编码

    果断文件-另存为-编码另存为 utf-8这样就好了。

    问题的原因就在于,文件本身使用的编码和它声明的编码不一致。xml解析器(也就是silverlight的xaml解析器)在对字节流(该字节流之前是使用gb2312进行编码的)进行解码时,用的就是声明的编码(如果没有指定,则默认为utf-8),因此这种不一致的问题会导致解码之后得到一些意想不到的字符,导致silverlight的xaml解析器无法识别,从而抛出上述的异常。例如一个本应该解析成闭合符>的,结果被解析成其他字符。

    知道这个原因之后我们要做的就是,保证文件存储的编码格式和它声明的编码格式一致即可。

    A方案:将文件另存为UTF-8编码格式。

    B方案:显式指定Xaml文件的字符集声明。由于Xaml也是xml,因此我们可以在文件中加上xml声明头,如下:

    <?xml version="1.0" encoding="gb2312" ?>
    <ResourceDictionary
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <!--测试-->
    </ResourceDictionary>

    不过建议使用A方案,这样兼容性更好一些。

  • 相关阅读:
    Socket与系统调用深度分析
    需求分析:未来的图书会是怎么样的?
    构建调试Linux内核网络代码的环境MenuOS系统
    jmeter--开始
    pytest---api
    pytest---mark
    pytest---数据处理
    pytest---fixture运行规则
    pytest---allure(mac版本)
    pytest---pytest.ini
  • 原文地址:https://www.cnblogs.com/aoldman/p/3358694.html
Copyright © 2011-2022 走看看