- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:各種スクリプト言語の記述時の文字コードについて)
各種スクリプト言語の文字コードについて
このQ&Aのポイント
- メジャーなスクリプト言語における文字コードについて質問です。
- シェルスクリプトやPHPは暗黙のうちにUTF-8で文字列が表記されますが、pythonやRubyは明示的にUTF-8と指定しなければならない理由について教えてください。
- ハッシュタグ: スクリプト言語, 文字コード, UTF-8, マジックコメント, 質問
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
文字コードについては、2つの考え方があります。 一つは、「文字列は一旦内部で共通のコードに変換して、外部に出力するときは、その出力先の文字コードに変換する」 もう一つは、「文字コード等考えずに、書かれたままのバイナリーデータを出力する」 シェルは基本的に後者です。 「文」「字」「列」という3文字だとは認識していません。 UTF-8なら「文の1バイト目」「文の2バイト目」「文の3バイト目」「字の1バイト目」... という 9文字だと認識しています。 この9バイトの列を「UTF-8だと解釈して表示する端末」を使うと「文字列」と読めます。 利点は「解釈しないのそのまま使える」こと 欠点は「日本語等の1文字を『1文字』として扱えない」こと、あるいは、「日本語等の1文字を扱うために、特別な方法が必要」ということです。 Pythonは前者です。 利点は「日本語等の1文字を『1文字』としてあつかえる」 欠点は「内部コードへの変換のために、元がどのコードなのか判断する必要がある」ということです。 自動判定、というのもないわけではないですが、誤判定してしまうという問題があります。 確実なのは、「書いた人に聞く」ことです。