我读了很多关于 Unicode、ASCII、代码页、所有历史、UTF-8、UTF-16 (UCS-2)、UTF-32 (UCS-4) 的发明以及使用它们的人等等,但我仍然有一些我试图找到答案但我找不到答案的问题,我希望你能帮助我。
1 - Unicode 是编码字符的标准,它们为每个字符指定一个代码点。像 U+0000 (示例)。想象一下,我有一个包含这些代码点 (\u0000) 的文件,我将在应用程序的哪个点使用它?
这可能是一个愚蠢的问题,但我真的不知道我将在应用程序的哪一点使用它。我正在创建一个应用程序,它可以使用转义读取具有这些代码点的文件,\u
我知道我可以读取它,解码它,但现在是下一个问题。
2 - 我需要将其转换为哪个字符集(代码页)?我看到一些 C++ 库,他们使用名称utf8_to_unicode
orutf8-to-utf16
并且也仅utf8_decode
,这让我感到困惑。
我不知道会不会出现这样的答案,但是有人可能会说:你需要把它转换成你要使用的代码页,但是如果我的应用程序需要国际化怎么办?
3 - 我想知道,在 C++ 中,如果我尝试在终端上显示非 ASCII 字符,我会得到一些令人困惑的单词。问题是:是什么让要显示的字符是字体?
#include <iostream>
int main()
{
std::cout << "ö" << std::endl;
return 0;
}
输出(Windows):
├├</p>
4 - 编码进入该过程的哪个部分?它编码,获取代码点并尝试在字体上找到相等的单词?
5 = WebKit 是一个用于在 Web 浏览器中呈现网页的引擎,如果您将字符集指定为 UTF-8,它可以很好地处理所有字符,但如果我指定另一个字符集,它不会,我的字体无关紧要'米使用,会发生什么?
<html>
<head>
<meta charset="iso-8859-1">
</head>
<body>
<p>ö</p>
</body>
</html>
输出:
一个¶
使用:
<meta charset="utf-8">
6 - 现在想象一下,我读取了文件,对它进行了编码,我拥有了所有的代码点,我需要再次保存文件。我需要将其保存为编码(\u0000)还是我需要先解码以再次转换为字符然后保存?
7 - 为什么“unicode”这个词有点重,有时被理解为 utf-16?(来源)
目前为止就这样了。提前致谢。