none
使用nmake编译工程,含UTF-8非ASCII字符的源文件会出现问题,如何处理 RRS feed

  • 问题

  • 我在编译Qt,其中包含的一些文件的注释里面包含非ASCII的UTF-8字符,会有错误提示说含有非法字符,可能导致一系列语法错误。其实就是源码的注释中有一些表格。

    例如:

    e:\library\qt-everywhere-opensource-src-5.9.1\qtwebengine\src\3rdparty\chromium\url\scheme_host_port.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

    有时候会导致语法错误,有时候不会,这完全看运气。

    nmake如何才能避免这些错误呢?


    • 已编辑 srhouyu 2017年7月13日 9:57
    2017年7月13日 9:43

答案

  • >>谢谢解惑。是不是意味着这个问题必须通过修改源文件来实现?

    不知道能不能进行批量操作?因为存在问题的源文件很多很分散,一个个操作不太现实。而且,若是源文件有了新版本,一更新可能又会恢复成问题文件。

    据我所知,vs中只有这两种方式可以解决该问题。你也可以添加4819到你的项目属性->C/C++->Advanced->Disable Specific Warnings。或者添加 /wd4819 命令到你的项目属性->C/C++->Command Line中。这样可以屏蔽这个warning。

    对于源文件的问题,建议你到QT论坛询问是否有办法批量解决。MSDN不负责解决第三方库文件的问题。谢谢你的理解与支持。

    Best Regards,

    Sera Yu


    MSDN Community Support<br/> Please remember to click &quot;Mark as Answer&quot; the responses that resolved your issue, and to click &quot;Unmark as Answer&quot; if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact <a href="mailto:MSDNFSF@microsoft.com">MSDNFSF@microsoft.com</a>.

    • 已标记为答案 srhouyu 2017年7月23日 12:36
    2017年7月17日 1:39

全部回复

  • Hi srhouyu,

    感谢在MSDN论坛发帖。

    >>我在编译Qt,其中包含的一些文件的注释里面包含非ASCII的UTF-8字符,会有错误提示说含有非法字符,可能导致一系列语法错误。其实就是源码的注释中有一些表格。

    例如:

    e:\library\qt-everywhere-opensource-src-5.9.1\qtwebengine\src\3rdparty\chromium\url\scheme_host_port.h: warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

    对于这个问题我建议你采取以下两种方式解决。

    1. 打开出错的文件,选择文件->高级保存选项->编码,改为unicode格式。

    2. 选择出错文件,编辑->高级->格式化文档。

    希望对你有所帮助。

    Best Regards,
    Sera Yu


    MSDN Community Support<br/> Please remember to click &quot;Mark as Answer&quot; the responses that resolved your issue, and to click &quot;Unmark as Answer&quot; if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact <a href="mailto:MSDNFSF@microsoft.com">MSDNFSF@microsoft.com</a>.

    2017年7月14日 5:35
  • 谢谢解惑。是不是意味着这个问题必须通过修改源文件来实现?

    不知道能不能进行批量操作?因为存在问题的源文件很多很分散,一个个操作不太现实。而且,若是源文件有了新版本,一更新可能又会恢复成问题文件。

    2017年7月14日 10:55
  • >>谢谢解惑。是不是意味着这个问题必须通过修改源文件来实现?

    不知道能不能进行批量操作?因为存在问题的源文件很多很分散,一个个操作不太现实。而且,若是源文件有了新版本,一更新可能又会恢复成问题文件。

    据我所知,vs中只有这两种方式可以解决该问题。你也可以添加4819到你的项目属性->C/C++->Advanced->Disable Specific Warnings。或者添加 /wd4819 命令到你的项目属性->C/C++->Command Line中。这样可以屏蔽这个warning。

    对于源文件的问题,建议你到QT论坛询问是否有办法批量解决。MSDN不负责解决第三方库文件的问题。谢谢你的理解与支持。

    Best Regards,

    Sera Yu


    MSDN Community Support<br/> Please remember to click &quot;Mark as Answer&quot; the responses that resolved your issue, and to click &quot;Unmark as Answer&quot; if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact <a href="mailto:MSDNFSF@microsoft.com">MSDNFSF@microsoft.com</a>.

    • 已标记为答案 srhouyu 2017年7月23日 12:36
    2017年7月17日 1:39