Unicode、ASCII、コード ページ、すべての歴史、UTF-8、UTF-16 (UCS-2)、UTF-32 (UCS-4) の発明、およびそれらの使用者などについてよく読んでいますが、まだいくつかの質問があり、答えを見つけるのに苦労しましたが、できませんでした。助けていただければ幸いです。
1 - Unicode は文字をエンコードするための標準であり、各文字のコード ポイントを指定します。U+0000 のようなもの (例)。これらのコード ポイント (\u0000) を含むファイルがあると想像してください。アプリケーションのどのポイントでそれを使用するのでしょうか?
これはばかげた質問かもしれませんが、アプリケーションのどの時点でそれを使用するのか本当にわかりません。エスケープを使用してこれらのコードポイントを持つファイルを読み取ることができるアプリケーションを作成しています\u
。それを読み取ってデコードできることはわかっていますが、次の質問です。
2 - どの文字セット (コード ページ) に変換する必要がありますか? utf8_to_unicode
orutf8-to-utf16
のみという名前を使用している C++ ライブラリをいくつか見ましたがutf8_decode
、これが混乱の原因です。
このような回答が表示されるかどうかはわかりませんが、次のように言う人もいるかもしれません: 使用するコード ページに変換する必要がありますが、アプリケーションを国際化する必要がある場合はどうすればよいでしょうか?
3 - C++ で端末に非 ASCII 文字を表示しようとすると、紛らわしい単語が表示されるのではないかと思っていました。問題は、表示される文字がフォントである理由は何ですか?
#include <iostream>
int main()
{
std::cout << "ö" << std::endl;
return 0;
}
出力 (Windows):
├Â</p>
4 - そのプロセスのどの部分にエンコーディングが入りますか? エンコードし、コードポイントを取得して、フォントで等しい単語を見つけようとしますか?
5 = WebKit は、Web ブラウザーで Web ページをレンダリングするためのエンジンです。文字セットを UTF-8 として指定すると、すべての文字でうまく動作しますが、別の文字セットを指定すると、フォントは関係ありません。 m を使用して、どうなりますか?
<html>
<head>
<meta charset="iso-8859-1">
</head>
<body>
<p>ö</p>
</body>
</html>
出力:
¶
以下を使用して動作します:
<meta charset="utf-8">
6 - ファイルを読み取ってエンコードし、すべてのコード ポイントを取得して、ファイルを再度保存する必要があるとします。エンコードして保存する必要がありますか (\u0000)、または最初にデコードして再度文字に変換してから保存する必要がありますか?
7 - なぜ「ユニコード」という言葉は少しオーバーロードされており、時々 utf-16 を意味すると理解されるのですか? (ソース)
それは今のところすべてです。前もって感謝します。