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方案,这样兼容性更好一些。

  • 相关阅读:
    10.3 noip模拟试题
    9.30 noip模拟试题
    9.29 奶牛练习题
    9.29noip模拟试题
    9.28noip模拟试题
    9.27 noip模拟试题
    二维数据结构学习
    9.26 noip模拟试题
    ContentProvider ContentResolver ContentObserver 内容:提供、访问、监听
    Cursor 游标
  • 原文地址:https://www.cnblogs.com/aoldman/p/3358694.html
Copyright © 2011-2022 走看看