c++ - C++ 内部的字符编码?

如果我创建一个带有 u8 前缀的字符串文字,机器代码是否知道并表明该变量的相应值应该以 UTF-8 编码?

这样无论我在哪里运行程序,计算机每次都知道如何编码?还是机器代码没有说,像这样这样编码?

因为如果我用普通字符编码一些东西,用 UTF-8 编码一些东西(例如使用 u8),那么如果机器代码没有说明任何内容,那么有什么区别,计算机如何知道编码?

最佳答案

u8"..." 字符串始终以 UTF-8 编码,如 [lex.string]/1 中指定的那样.

"..." 字符串的编码取决于编译器(以及源文件编码),但是配置 IDE 以 UTF-8 保存文件应该不难,并且您的编译器不会在纯字符串文字中使用 UTF-8。

无论如何,编码完全在编译时处理。在编译后的代码中,字符串只是字节序列;在运行时编码之间没有转换,除非您显式调用执行此操作的某个函数。

https://stackoverflow.com/questions/69508951/

相关文章:

rust - 循环中的多个可变引用

amazon-web-services - 无法在 AWS CodeBuild 镜像中使用 amaz

c# - Swagger UI 隐藏 AspNetCore.Mvc.ProblemDetails 架

r - 计算数据框中变量中多个字母的出现次数?

python - MongoDB 集合到 pandas Dataframe

r - 列名上的整洁评估映射

r - 如何从多个特定索引范围返回多行?

odata - 将空值传递给 OData V2 Edm.Time 属性

java - 如何在 Java 中更改时间格式 - "am/pm"与 "AM/PM"

java - "JSON 解析错误 : Cannot construct instance of (