GCC 4.7字符串文字的源字符编码和执行字符编码?

GCC 4.7字符串文字的源字符编码和执行字符编码?,c,linux,gcc,character-encoding,string-literals,C,Linux,Gcc,Character Encoding,String Literals,Linux/x86_64上的GCC 4.7是否有默认字符编码,通过该编码验证和解码C源文件中字符串文本的内容?这是可配置的吗 此外,当将字符串数据从字符串文本链接到输出的数据部分时,是否有默认的执行字符编码?这是可配置的吗 在任何配置中,源字符编码是否可能与执行字符编码不同?(那就是gcc是否会在字符编码之间进行转码?我不知道这些选项的实际工作情况如何(不使用atm;我仍然更喜欢将字符串文字视为“仅ASCII”,因为本地化字符串无论如何都来自外部文件,所以主要是格式化字符串或文件名),但它们添加

Linux/x86_64上的GCC 4.7是否有默认字符编码,通过该编码验证和解码C源文件中字符串文本的内容?这是可配置的吗

此外,当将字符串数据从字符串文本链接到输出的数据部分时,是否有默认的执行字符编码?这是可配置的吗


在任何配置中,源字符编码是否可能与执行字符编码不同?(那就是gcc是否会在字符编码之间进行转码?

我不知道这些选项的实际工作情况如何(不使用atm;我仍然更喜欢将字符串文字视为“仅ASCII”,因为本地化字符串无论如何都来自外部文件,所以主要是格式化字符串或文件名),但它们添加了如下选项:

-fexec charset=charset
设置执行字符集,用于字符串和字符常量。默认值
是UTF-8。字符集可以是系统iconv库例程支持的任何编码。
-fwide exec charset=字符集
设置宽执行字符集,用于宽字符串和字符常量。
默认值为UTF-32或UTF-16,以与wchar\u t的宽度相对应的值为准。作为
使用-fexec字符集,字符集可以是系统iconv支持的任何编码
图书馆常规;但是,您将遇到不适合的编码问题
正是在华盛顿。
-finput字符集=字符集
设置输入字符集,用于从
GCC使用的源字符集的输入文件。如果区域设置未指定,
或者GCC无法从区域设置获取此信息,默认值为UTF-8。这个可以
可以由区域设置或此命令行选项覆盖。当前命令
如果有冲突,行选项优先。字符集可以是任何编码
由系统的iconv库例程支持。

我想知道当src和exec编码是默认的UTF-8时,它是否实际验证字符串文字以及格式良好的UTF-8,如果它包含无效的字节序列,是否会引发错误,或者它是否只是让无效的字节通过。