球将cpp和h批量转成Unicode的工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了球将cpp和h批量转成Unicode的工具相关的知识,希望对你有一定的参考价值。

编译个dll,结果全是
warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失。
请问这是什么狗屁错误....以及解决方法.........或者给个这种工具吧......
我做的是半条命2的mod,直接拿源文件改的,只是改了个rpg的飞行速度。
用的是Visual Studio 2010。
系统win7。
再次补充:有1000多个cpp和h呢...........
再再次提问: \n 和 \n 不是一样的东西吗?
再次补充:你们别把我的分都弄光了..........

不要听不专业的回答。 你的问题和windows与unix,linux之间的换行不一致的问题无关,那个是不会出现警告936的,只会打开文件的时候提示你是否转换行尾。

这个错误大多数情况是因为你在中文(code page 936)的环境中,编译英文西欧(code page 1252)的代码造成的。

这个应该就是你代码开头的 版权声明中的 (c)这个符号(你现在看到的是一个问号),不影响的。(最多调试的时候说代码不一致,这个也有办法解决)

1 你可以将系统语言设置成English(UnitedStates)[控制面板->区域语言选项->高级->将下拉的非unicode程序语言 给改了,连续2次yes重启电脑], 然后你就可以看到正常的(c)了。 这个是最方便的做法,我们工作的电脑就是因为这个原因,编译虚幻3引擎的项目时,都是设置的英语(美国)的。(当然这个会让你运行一般的中文软件出乱码,不过2者不可兼得)

我不知道有什么好用的批量转换工具。 但是我想告诉你,不管是你自己写tool还是手工用vs来保存为unicode再切换回中文(RPC)显示,你第一步都必须按照我上面说的,先切换成英语(美国)才行。

2 你还可以选择忽视那个版权符号, 把那个“?”字符全局用ctrl+shift+F 的查找替换给批量换掉,也是一种快捷的方法,反正你下的代码是自己用的,这个不重要,不是正常工作的项目,不需要100%原汁原味。

参考资料:我很专业,看我的问题采纳率过50%就知道了

参考技术A 这个警告往往是因为换行符和当前代码页不一致引起的,一般来说,不管也没什么问题。

如果要转换代码格式的话:

用VS的查找替换功能,打开允许正则表达式选项,选择"在文件中替换",替换范围选择“整个解决方案”,查找替换 \n 为 \n , 选择“全部替换”然后,这个世界就清净了。

建议你替换之前先备份代码,另外,如果文件多的话,替换起来会有点慢。

前面那个\n是原来编码页里的,后面那个就是你现在编码页里的了。
让你选“整个解决方案”正是因为你有1000多个cpp的呀。

至于正确与否,这个判定也很简单,你备份代码,做一遍看看,如果不行再想别的办法就好了。
参考技术B 原因:
你那份别人的源码里有当前代码页不支持的编码字符(中国一般gb2312编码)

解决:
1、自己手打一遍。。。

2、试着把源码粘贴到记事本、word啥的里去,再另存一遍(默认编码),会提示有当前代码页不能表示的字符,无视之,然后再用vs2010试试
参考技术C 不懂

SAP中如何将一个字符串转成UNICODE格式传送?

SAP中如何将一个字符串转成UNICODE格式传送?

参考技术A 我的理解:字符串本身就是字符串,没什么unicode和ununicode的区别,unicode是针对sap系统来说的,目前比较新的版本都是支持uncode的。对于字母,数字没什么特别的影响,关键是汉字,例如:“系统出错”这个字符串,原来的字符长度是8,而unicode系统下长度则为4,对于这样的字符串的操作,应该使用特定的class的方法来进行读取邓的操作,才能保证不出现乱码的现象。

希望对你有帮助。

以上是关于球将cpp和h批量转成Unicode的工具的主要内容,如果未能解决你的问题,请参考以下文章

c语言怎么把UTF-8转换成Unicode

c语言怎么把UTF-8转换成Unicode

linux编码转换问题

游戏开发 | Excel 表格批量转成lua的转表工具

VC的UNICODE 编程

office零售版怎么转成批量授权版