アカウント名:
パスワード:
「秀丸ですらutf8だよ」とまだSJIS至上主義の人を改心させて欲しい文字コードが混在する時代を早く脱せたらいいな
本当ですねでもwindows本体はutf16標準とかになりそうで嫌ですね
Windows内部(主にメモリ)での内部表現はutf16相当だけど、テキストファイルのエンコードはかなり前からuft8が標準だよ。httpなど外部とのやり取りは基本的にutf8としているわけで、システム内部のエンコーディングを気にする理由がいまいちわかりません。
パフォーマンスとしてはちょっと問題。dotnetは昔から内部がUTF-16だけど、最近変換コストが無視できなくなって来ている。だからできるだけUTF-8を使うようにしたいのだが…破壊的変更はしたくないしで困ってる。
文字列操作関係の仕様変更や実装やり直しの多さを考えると破壊的変更と呼ぶのも生ぬるいレベルになりそうだから、内部実装のuft8化はやめといた方がいいと思う。String.Lengthの意味が全く変わることだけ考えてもひどいことになる。
UTF-16も固定長じゃないので、別に意味が変わるとは思わないけど。まさか Length プロパティが文字数だとかしてないよね? まさか、ね?
んなことはわかってて言ってるの。Lengthはutf8のバイト数を返すようになったらまともに動かなくなるプログラムがどれだけあるか、それがまともに動くように修正するのがどれほどの負担になるか想像してからコメントしろ。
具体的に言ってみろよ元々可変長だった文字列表現が別の可変長になったところで大して困ることはないと思うが?え、まさか UTF-16 だから要素サイズを 2 とかハードコーディングしちゃってるとかないよねw
.NETなどの文字列処理を理解してないことがよくわかるコメントだな。.NETはUTF-16なのでchar型は16ビットで、バイト配列に変換でもしなければ一文字を2とカウントすることはほぼない。
具体例としては入力フォームなどでテキストボックスなどの最大文字数を指定している場合、たとえば4と指定していれば英数字でも漢字でもサロゲートペアなどでなければ4文字入力できる。それをUTF-8で扱うとどうなる?漢字は2文字までしか入力できなくなって動作に支障をきたす?UTF-8だと3バイトになる漢字も多いから12とする?それだとアルファベットは12文字まで入力可能になってそちらが問題となる可能性も十分ある。
書き忘れてたけど、それって Length プロパティと何の関係があるの?あとサロゲートペアにしか言及してないけど合字は? 結合文字はどうするの?自分の方が無知なんじゃね?
Lengthは一例として取り上げただけなのでそこにこだわる必要性はまったくないよ。それにサロゲートペア以外の存在に言及したところでなにか違いがある?話が長くなるだけで何も変わらないからいちいち言及しないよ。そんなに無理して突っ込むところを探さなくてもいいんだよ。
Length の本質的意味は変わってないのに、一例としてあげるのはおかしいだろ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
windowsの脱SJISが進んで欲しい (スコア:0)
「秀丸ですらutf8だよ」とまだSJIS至上主義の人を改心させて欲しい
文字コードが混在する時代を早く脱せたらいいな
Re: (スコア:0)
本当ですね
でもwindows本体はutf16標準とかになりそうで嫌ですね
Re: (スコア:0)
Windows内部(主にメモリ)での内部表現はutf16相当だけど、テキストファイルのエンコードはかなり前からuft8が標準だよ。
httpなど外部とのやり取りは基本的にutf8としているわけで、システム内部のエンコーディングを気にする理由がいまいちわかりません。
Re: (スコア:0)
パフォーマンスとしてはちょっと問題。
dotnetは昔から内部がUTF-16だけど、最近変換コストが無視できなくなって来ている。
だからできるだけUTF-8を使うようにしたいのだが…破壊的変更はしたくないしで困ってる。
Re: (スコア:1)
文字列操作関係の仕様変更や実装やり直しの多さを考えると破壊的変更と呼ぶのも生ぬるいレベルになりそうだから、内部実装のuft8化はやめといた方がいいと思う。
String.Lengthの意味が全く変わることだけ考えてもひどいことになる。
Re: (スコア:0)
UTF-16も固定長じゃないので、別に意味が変わるとは思わないけど。
まさか Length プロパティが文字数だとかしてないよね? まさか、ね?
Re: (スコア:0)
んなことはわかってて言ってるの。
Lengthはutf8のバイト数を返すようになったらまともに動かなくなるプログラムがどれだけあるか、それがまともに動くように修正するのがどれほどの負担になるか想像してからコメントしろ。
Re: (スコア:0)
具体的に言ってみろよ
元々可変長だった文字列表現が別の可変長になったところで大して困ることはないと思うが?
え、まさか UTF-16 だから要素サイズを 2 とかハードコーディングしちゃってるとかないよねw
Re: (スコア:0)
.NETなどの文字列処理を理解してないことがよくわかるコメントだな。
.NETはUTF-16なのでchar型は16ビットで、バイト配列に変換でもしなければ一文字を2とカウントすることはほぼない。
具体例としては入力フォームなどでテキストボックスなどの最大文字数を指定している場合、たとえば4と指定していれば英数字でも漢字でもサロゲートペアなどでなければ4文字入力できる。
それをUTF-8で扱うとどうなる?漢字は2文字までしか入力できなくなって動作に支障をきたす?UTF-8だと3バイトになる漢字も多いから12とする?それだとアルファベットは12文字まで入力可能になってそちらが問題となる可能性も十分ある。
Re: (スコア:0)
書き忘れてたけど、それって Length プロパティと何の関係があるの?
あとサロゲートペアにしか言及してないけど合字は? 結合文字はどうするの?
自分の方が無知なんじゃね?
Re: (スコア:0)
Lengthは一例として取り上げただけなのでそこにこだわる必要性はまったくないよ。
それにサロゲートペア以外の存在に言及したところでなにか違いがある?話が長くなるだけで何も変わらないからいちいち言及しないよ。
そんなに無理して突っ込むところを探さなくてもいいんだよ。
Re:windowsの脱SJISが進んで欲しい (スコア:0)
Length の本質的意味は変わってないのに、一例としてあげるのはおかしいだろ