C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – VC在GCC中是否有编译选项,如“-fexec-charset”来设置执行字符集?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
GCC具有-finput-charset,-fexec-charset和-fwide-exec-charset三个编译选项,用于指定“编译链”中涉及的特定编码.如下所示:
+--------+   -finput-charset     +----------+    -fexec-charset (or)    +-----+
| source | ------------------->  | compiler |  -----------------------> | exe |
+--------+                       +----------+    -fwide-exec-charset    +-----+

GCC compiler options

在这里发现了一个关于-finput-charset的问题:Specification of source charset encoding in MSVC++,like gcc “-finput-charset=CharSet”.但是我想知道VC是否有一个编译器选项,如GCC中的-fexec-charset来指定执行字符集.

我在Visual studio中找到一个似乎相对的选项:项目属性/配置属性/常规/字符集.值为“使用Unicode字符集”.它在GCC中是否与-fexec-charset一样?这样我想将执行字符集设置为UTF-8.如何?

为什么要设置执行的编码?

我正在C中编写一个需要与数据库服务器通信的应用程序.而表的字符集是utf8.在构建一些测试后,测试将捕获在db表上的插入操作周围抛出的异常.例外情况告诉我,他们遇到不正确的字符串值.我认为这是由编码错误造成的? BTW有没有办法处理这个问题?

解决方法

AFAIK,VC没有命令行标志来让您指定一个UTF-8执行字符集.
但是它(偶尔)支持无证件
#pragma execution_character_set("utf-8")`

here.

要使用此编译指示获得命令行标志的效果,您可以在标题中编写pragma
文件,例如preinclude.h,并通过传递在每个编译中预先包含这个标题
国旗/ FI preinclude.h.见this documentation
如何从IDE设置此标志.

VC 2010中的pragma被支持,然后在VC 2012中被遗忘,并再次被支持在VC 2013

大佬总结

以上是大佬教程为你收集整理的c – VC在GCC中是否有编译选项,如“-fexec-charset”来设置执行字符集?全部内容,希望文章能够帮你解决c – VC在GCC中是否有编译选项,如“-fexec-charset”来设置执行字符集?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。