警告C4819:如何找到必须以unicode保存的字符?

q09*_*987 20 visual-studio-2010

我最近通过我的VS2010看到了以下警告.

警告21警告C4819:该文件包含无法在当前代码页中表示的字符(936).以Unicode格式保存文件以防止数据丢失

c:\boost\vs2010_boost1.49\include\boost\format\alt_sstream_impl.hpp 1
Run Code Online (Sandbox Code Playgroud)

基于MSDN,该文件包含必须以unicode格式保存的字符.

问题:我自己没有触摸过这些文件.有没有办法可以找到这些字符并手动更正.换句话说,我不想以unicode格式保存源文件.

谢谢

sch*_*ack 46

您可以使用Notepad ++使用正则表达式查找文件中的所有Unicode字符:

  1. 在Notepad ++中打开您的文件.
  2. 确保从" 编码"菜单中选择" UTF-8 " .
  3. 打开搜索框(使用CTRL-F或转到" 搜索"菜单并选择" 查找...").
  4. 在"搜索模式"下,选择" 正则表达式"的单选按钮.
  5. [^\x00-\x7F]在" 查找内容"框中输入,然后单击"查找下一个"按钮以查看您获得的内容.

找到Unicode字符后,可以删除/更改它们,将编码更改回ANSI,然后保存文件.

当然,您不必使用Notepad ++.RegEx将在其他文本编辑器中工作,例如Sublime Text.

  • 另外,在 Notepad++ 中使用“查找”对话框时,请使用“标记”选项卡中的“标记全部”功能。 (2认同)

小智 6

我在我的项目中遇到了这个问题,并尝试修改所有非unicode字符.但我不得不放弃并找到另一种方式,因为有太多的文件存在这样的问题(即使所有这些都在评论中).

然后我通过设置'系统区域设置'找到了一种快速解决方法.

Control Panel -> Clock,Language,and Region -> Region and Language -> 
Administrative -> Language for non-Unicode programs -> Change system locale -> English
Run Code Online (Sandbox Code Playgroud)

如果您的"系统区域设置"不是英语,我认为这可以解决您的问题.

/sf/answers/2651031841/