- ベストアンサー
文字化け
文字化けしたテキストを誤って保存してしまうと正しい文字コードを使ってデコードしても元の文字列が表示できないのは何故ですか?分かる方おられたら教えて欲しいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
(1) の文字 Code で記録された Data を (2) の文字 Code に変換すると、(1) で定義されている文字が (2) では定義されていない、或いは他の文字として定義されている部分で誤読が生じ、再び (1) に変換しても元には戻りません。 画像 (映像) や音声の圧縮 Program 用語に「可逆圧縮と不可逆圧縮」という言葉がありますが、100 種類以上ある文字 Code も互いに可逆性を持たない Code が少なからず存在するので、一度誤変換 (文字化け) を起こしてしまうと元には戻せないのです。 私の知識は一介の PC User としての知識ですので、上は一般的な PC User への回答であり、情報工学の試験では限りなく 0 点に近いでしょうが(笑)、情報工学では専用の用語があるでしょうし、文字列定義の違いのみならず、符号化方式、7bit 伝送路への Encode 方式の違いといった違いもある筈です。 ……その辺は教科書や参考書で確認してください。 素敵な PC Life を(^_^)/
その他の回答 (4)
- m5048172715
- ベストアンサー率16% (860/5261)
文字化けした結果の文字Xになるのが、2つ以上あるからだろう。Xになるのが1つだけなら、化けたのを元に戻せる。 (例) ABCDEF ←→ GHIJKL ABCDEF →→ XXXXXX XXXXXX →→ AかBかCかDかEかF AかBかCかDかEかF AかBかCかDかEかF AかBかCかDかEかF AかBかCかDかEかF AかBかCかDかEかF
- hahaha8635
- ベストアンサー率22% (800/3610)
文字化け https://tools.m-bsys.com/development_tooles/char_corruption.php 文字化けのメカニズム知ってる? https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91 CR+LF問題 2バイト問題 フォントの違い Unicode エスケープシーケンス を含む文字
- AsarKingChang
- ベストアンサー率46% (3467/7474)
単に別のコードになるからです。 文字化け後の文字コードに存在しないコードは 表現できないわけなので、何らかの別の文字に変わります。 例えば、「1234」という文字が文字化けで「????」と 出てしまってる状態で保存したら、 保存された文字はあくまで「????」なので、 2度と「1234」には戻せない為です。 なお、保存さえしなければ、別エンコードを使って再表示 するだけで、元に戻せます。 ちなみ、文字化けしていなくても、勝手に 近い文字に置き換わって違う文字コードになってることもあり、 文字化けしなくても、文字コードが変わることもあります。
- t_ohta
- ベストアンサー率38% (5238/13705)
お礼
ありがとうございました!