GCC 4.7 Source Character Encoding and Execution Character Encoding For String Literals?

后端 未结 1 1455
说谎
说谎 2020-12-05 15:51

Does GCC 4.7 on Linux/x86_64 have a default character encoding by which it validates and decodes the contents of string literals in C source files? Is this configurable?

相关标签:
1条回答
  • 2020-12-05 16:50

    I don't know how well these options actually work (not using them atm; I still prefer treating string literals as 'ASCII only', since localized strings come from external files anyway so it's mostly things like format strings or filenames), but they have added options like

    -fexec-charset=charset
    Set the execution character set, used for string and character constants. The default
    is UTF-8. charset can be any encoding supported by the system's iconv library routine. 
    
    -fwide-exec-charset=charset
    Set the wide execution character set, used for wide string and character constants.
    The default is UTF-32 or UTF-16, whichever corresponds to the width of wchar_t. As
    with -fexec-charset, charset can be any encoding supported by the system's iconv
    library routine; however, you will have problems with encodings that do not fit
    exactly in wchar_t.
    
    -finput-charset=charset
    Set the input character set, used for translation from the character set of the
    input file to the source character set used by GCC. If the locale does not specify,
    or GCC cannot get this information from the locale, the default is UTF-8. This can
    be overridden by either the locale or this command line option. Currently the command
    line option takes precedence if there's a conflict. charset can be any encoding
    supported by the system's iconv library routine. 
    
    0 讨论(0)
提交回复
热议问题