gpt4 book ai didi

c++ - VC有没有像GCC中的 '-fexec-charset'这样的编译选项来设置执行字符集?

转载 作者:可可西里 更新时间:2023-11-01 15:17:44 36 4
gpt4 key购买 nike

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 中发现了一个看似相关的选项:Project Properties/Configuration Properties/General/Character Set。值为Use Unicode Character Set。它与 GCC 中的 -fexec-charset 做同样的事情吗?这样我想将执行字符集设置为UTF-8。怎么办?

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

我正在用 C++ 编写一个需要与数据库服务器通信的应用程序。表的字符集是 utf8。在我构建了一些测试之后,这些测试将捕获围绕数据库表的插入操作抛出的异常。异常告诉我它们遇到了不正确的字符串值。我想这是由错误的编码引起的吧?顺便说一句,还有其他方法可以处理这个问题吗?

最佳答案

据我所知,VC++ 没有命令行标志让您指定 UTF-8 执行字符集。但是它确实(偶尔)支持未记录的

#pragma execution_character_set("utf-8")

引用here .

要使用此 pragma 获得命令行标志的效果,您可以将 pragma 写在标题中文件,比方说,preinclude.h 并通过传递在每个编译中预先包含此 header 标志 /FI preinclude.h。参见 this documentation了解如何从 IDE 设置此标志。

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

关于c++ - VC有没有像GCC中的 '-fexec-charset'这样的编译选项来设置执行字符集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23607830/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com