62394


これまで環境依存文字を使用しないよう努めてきましたが、  
Windows10のメモ帳がUnicode対応していることを知り、  
Unicode文字なら普通に使用しても問題ないのでは、と思ったのですが、  
Unicodeではない文字コード環境を使用する例としては何が挙げられますか？

少なくともutf8で作成したWebサービスに対して、などのUnicode文字を任意のユーザーが入力しても問題ないですか？


CC BY-SA 4.0
2020-01-20T10:36:42.067
62388
2020-01-20T12:23:34.053
7886
question
文字コード
Unicodeではない文字コード環境としては例えば何が挙げられますか？


コンピュータは文字を `符号化文字集合` と `文字符号化方式` の組み合わせで表現しています。

Unicodeは符号化文字集合のひとつで、UTF-8はUnicodeを使った文字符号化方式のひとつです。  
JIS X 0208も符号化文字集合のひとつで、Shift_JISはJISを使った文字符号化方式のひとつです。

「問題がない」かどうかは、文字をどう扱うかにかかってきます。例えば JavaScript は文字列の内部表現に UTF-16
を使っていますから、たとえJavaScriptがUTF-8で記述されていても内部表現に直接依存したコードは問題を抱えています。

[code]

    // 文字列の長さを得るのにlengthを使うと破綻する。
    console.log("".length); // => 2
    
[/code]

Windowsのメモ帳は文字エンコードの欄に「Unicode」と「UTF-8」を並べて記載していますが、これは間違いです。メモ帳から「Unicode」で保存した際は「UTF-16LE」という文字符号化方式で保存されます。

* * *

追記:  
[Windows10 1903以後は「Unicode」表示は無くなっています。](https://snow-white.cocolog-
nifty.com/first/2019/05/post-7ab7a5.html)


CC BY-SA 4.0
2020-01-20T11:20:31.077
62392
2020-01-20T12:23:34.053
2020-01-20T12:23:34.053
62
62
62388
answer


> Unicodeではない文字コード環境を使用する例としては何が挙げられますか？

  * E-mailで日本語を扱う場合、ISO-2022-JPが一般的です。
  * Windowsで日本語を扱う場合、Unicodeかそれ以外であればShift-JISを使います。
  * UTF-8登場前にUNIX系OSで日本語を扱う場合、EUC-JPが使われていました。

* * *

> Windows10のメモ帳がUnicode対応していることを知り、

参考までにWindows 2000のメモ帳であってもUTF-8（BOM有り・無し共に）を自動検出できます。


CC BY-SA 4.0
2020-01-20T11:49:15.223
62394
2020-01-20T11:49:15.223
4236
62388
answer