質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

2回答

5840閲覧

文字化けの原因はフォントか?OSか?(文字コードが正しくない場合を除く)

yuji38kwmt

総合スコア437

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2017/04/17 13:48

編集2017/04/18 12:13

文字コードについて勉強しています。

今、文字化けについて考えています。
たとえば、ホッケ「????」(U+29E3D)という字が表示されない場合、原因は以下のどちらでしょうか?

  • 表示しているフォントが「????」に対応してない
  • 表示している環境のOSが「????」に対応していない

使える文字を増やしたいとき、OSを新しくすればよいのか、フォントを変えればよいのかが分かりません。

補足

たとえば、今 Unicode9.0で追加されたクロワッサンの絵文字(U+1F950 : [???? ]:CROISSANT)が書かれたファイルを、複数人に渡して、テキストエディタで閲覧してもらいいです。
http://emojipedia.org/croissant/

「このファイルは以下の環境ならば閲覧できます」と伝えたいのですが、具体的に何を指定すればよいしょうか?
OSを指定すればよいのか、エディタなのか、フォントなのかを、知りたいです。

ちなみに、私の環境(Windows10, sakura editor, MSゴシック)ではクロワッサンの絵文字は表示できています。

また同様の質問ですが、クロワッサンの絵文字をブラウザに表示したいときき、「OSを指定するのか、ブラウザを指定するのか」も知りたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

その二択でしかないなら、まずフォントを新しくして、それでも直らなかったら OS を新しくしてください。

追記

補足の件に関して。
クロワッサンの文字を Windows10 の Chrome では表示できました。また、TextRenderer.DrawText() を使った描画でも表示できました。また、TextEdit でもメモ張でも表示できました。
しかし、別のフォントを指定した RichEdit とワードパッドでは表示できませんでした。
ここから、OS だけでは不十分で、アプリによる条件があることがわかります。

この絵文字を表示できるフォントがインストールされているかどうか、そして表示するアプリがそのフォントを使っているかどうか、この二つの条件で決まります。

OS によってはフォントとアプリがデフォルトでインストールされているでしょうから、そのような OS では表示できると言っても間違いではありませんが、対応外の OS でも後からインストールできるとすれば条件付きで表示できると言えます。

だから、一言で言うのは難しいと思います。「デフォルトでは」という但し書きを付けたうえで対応状況を調べ、その上でインストール可能かどうかを調べて表を作る必要があるのではないかと思います。

投稿2017/04/17 13:55

編集2017/04/18 12:55
Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2017/04/20 15:34

実際に検証していただきありがとうございます。
guest

0

ベストアンサー

ソフトウェアの作りが原因の場合もあります。というか、そのケースは結構多いです。

U+29E3DはUnicodeの「追加多言語面(SMP)」に属していて、見ての通り16ビットを超えています。Unicodeに正しく対応していないアプリには「基本多言語面(BMP)」という16ビットで表現可能な範囲しか扱えない物も存在します。

使える文字を増やしたいとき、OSを新しくすればよいのか、フォントを変えればよいのかが分かりません。

具体的に何をしたいのか、何のOSのどのバージョンなのかを示していただかないと何とも言えません。追加多言語面は2001年とだいぶ前に実装されているので、現在リリースされているOSで未対応なのは、テキスト処理をする必要がない小規模な組み込み機器向けのOSだけだと思います。
ただ、フォントの対応状況はOSによって異なり、Windowsは有料ということもあってか更新は素早いですが、Linuxはディストリビューションによってまちまちです。

そして、前述の通りソフトウェアの対応状況も重要です。中には追加多言語面の文字を渡すと、フリーズしたり暴走したりといった不具合を起こす物もあります(UTF-8を最大3バイトとみなしていた時期があったため)。
また、例えばMySQLというデータベースシステムは、追加多言語面を扱うには文字コードを「utf8mb4」に設定するなど、利用の際には注意が必要なケースもあります。

投稿2017/04/18 02:55

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuji38kwmt

2017/04/20 15:34

詳細な説明ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問