C++源代码最适合使用哪种编码?

6

最近我将C++源代码的编码从ASCII改为UTF-8,但我不确定这是否是一个好主意,因为我遇到了一些文字问题,慢慢地思考后,我没有看到任何优势。

C++源代码中应该使用哪种编码被认为是标准或“最佳实践”?(我的IDE是VStudio和QtCreator,但我想这个问题是通用的)


2
ASCII是UTF-8的严格子集。也就是说,每个有效的ASCII八位字节在UTF-8中的编码方式都完全相同。因此,如果您的代码实际上是ASCII(而不是像Windows-1252这样的奇怪编码),它应该能够以UTF-8格式进行处理,而无需进行任何更改。 - C. K. Young
3个回答

3
我认为只要你使用的所有实现都支持,UTF-8就是正确的选择。
优点是,您不必使用\uXXXX或\UXXXXXXXX转义来编写每个非ASCII字符。或者,如果您真正的意思是各种特定于区域设置的编码/代码页中的“ASCII”,那么使用UTF-8的优点是它适用于所有语言环境,并且不需要开发人员将其(Windows)机器配置为特定的语言环境以构建源代码。
如果您描述了您在使用字面值时遇到的问题,我可能可以帮助您解决这些问题。

我现在想到的一个想法是,我永远不需要在源代码中输入非ASCII字符,我能想到的唯一原因是输入一些本地化字符串字面量,但那是个坏主意。 - tru7

2
从标准的2.3.1节中可以看到:
字符集[lex.charset] 1 基本源字符集由96个字符组成:空格字符,表示水平制表符、垂直制表符、换页以及换行的控制字符,以及以下91个图形字符: a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 _ { } [ ] # ( ) < > % : ; . ? * + - / ^ & | ~ ! = , \ " ’

2
不要在源代码中使用非ASCII字符。这样编码就无关紧要了。
对于跨平台项目来说,这是最安全和最明智的选择,虽然有些令人遗憾。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接