/* * The following lines were written to encode this Java source file in UTF-8 exactly, * because javac does not allow source that start with BOM. * こんにちは。 * Hyvää päivää! * 안영하세요? * 你好嗎? * Bonjour, ça va? */
ログインして回答する
回答はまだありません
これ以上回答リクエストを送信することはできません。制限について
コメント(6件)
日本語だけだと自国よがりな気がしたので適当に日芬韓中仏語で書いてみました。
>deep one さん
『この文章を書こうと思っているがこれで良いだろうか』
の方です。意味が解らなかったり文法的、フィーリング的に間違っていたりする点があったら、
ご指摘、御校正頂けたらと思っています。
・Unicodeが書かれているからと言って、必ずUTF-8で保存されるとは限らない(OSやエディタの仕様に依存する)
・BOMは必ずファイル先頭に付けられるので、この文章がUTF-8で保存されるとソースファイル先頭にBOMが付く(=javacが受け入れなくなってしまうのでは?)
> ・Unicodeが書かれているからと言って、必ずUTF-8で保存されるとは限らない
ASCII 文字のみで書かれていたファイルにうっかり日本語などを付け足した場合に、
警告等なしで Shift_JIS で保存されてしまう事が多く、同じように欧米人が書いたファイルが
ISO-8859-15 あたりのエンコードで保存されていた事も多々あったという背景があります。
想定しているエンコーディングでは保存できない旨の警告等があれば気づいて UTF-8 に保存するだろうと意図しました。
>・BOMは必ずファイル先頭に付けられるので、この文章がUTF-8で保存されるとソースファイル先頭にBOMが付く
>(=javacが受け入れなくなってしまうのでは?)
BOM なしの UTF-8 という保存の仕方があります。BOM は元々は UTF-16 のバイトオーダーが
リトルエンディアンなのかビッグエンディアンなのかを示すために規定された物なので、
バイトオーダーが問題にならない UTF-8 では BOM は本来の意味としては必要がありません。
今回はテキストファイルのエンコーディングが UTF-8 であることを明示する為に BOM をつけたかったのですが、
javac が許容してくれないために代替案として数ヶ国語の挨拶を書いておくことにしたのです。
上述のイメージで文法的な間違い等々を指摘、修正して頂きたいと思っております。
ここの件であっていますよね。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4508058
UTF-8の規格上はBOMはあってもなくても差し支えありませんが、例えばWindowsのメモ帳はBOMありUTF-8しか認識しません。
UTF-8で保存すると必ずBOMが付き、またBOMなしのUTF-8はUTF-8と認識されず文字化けした状態で読み込まれます。
エディタ依存というのはそういう意味です。
またそもそもUnicode-unawareなエディタで読み込まれたらエンコーディング警告すら出ませんので、対処のしようがないと思います。
もっと直截的に、
・このファイルはUTF-8で保存されている(されるべき)
・下の文章が読めない環境(Unicode-unaware)では正しく扱えない
・BOMが付く環境では、コンパイル前にBOMを削除する必要がある
のような内容ではどうでしょうか。