文字コード総合スレ Part10 [転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2015/10/14(水) 20:29:00.08ID:xctG4AAd
プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
UTF-8、ShiftJIS、JIS、EUC、Uincode、 UCS、サロゲートペア、コードポイント、文字コード判定、
合成文字、ソート、TRON、外字コード、その他について語り合いましょう。
各言語での文字列の扱いについての質問もOKです。
基本マッターリ、ささ、茶でもどうぞ。

■過去スレ
文字コード総合スレ part1 http://pc11.2ch.net/test/read.cgi/tech/1031028205/
文字コード総合スレ part2 http://pc11.2ch.net/test/read.cgi/tech/1143375639/
文字コード総合スレ part3 http://pc11.2ch.net/test/read.cgi/tech/1180250376/
文字コード総合スレ part4 http://pc11.2ch.net/test/read.cgi/tech/1228052369/
(スレ再利用)UnicodeとUTF-8の違いは? http://pc12.2ch.net/test/read.cgi/tech/1177930957/
(隔離スレ)UnicodeとUTF-8の違いは? その2 http://pc12.2ch.net/test/read.cgi/tech/1274937437/
文字コード総合スレ part5 http://pc12.2ch.net/test/read.cgi/tech/1236529563/
文字コード総合スレ part6 http://hibari.2ch.net/test/read.cgi/tech/1278923059/
文字コード総合スレ part7 http://toro.2ch.net/test/read.cgi/tech/1306595564/
文字コード総合スレ part8 http://peace.2ch.net/test/read.cgi/tech/1354248962/
文字コード総合スレ part9 http://peace.2ch.net/test/read.cgi/tech/1401301779/
2016/01/22(金) 19:46:47.72ID:Eb9O6glo
[要出典]
てか
2016/01/22(金) 20:00:04.23ID:QBUelO2B
アホの安岡が
『「常用漢字表と人名用漢字表を元にしてテキストを作成した[1]」のが事実なら』
と鍵かっこで強調してるというのに
日本語も読めないのかこの馬鹿(>151)は
2016/01/25(月) 22:08:23.80ID:hLxKxz0/
Unicodeには常用漢字表も人名用漢字表も含まれてるから、
結局のとこ、Unihanで無問題な希ガス
2016/01/25(月) 22:37:19.56ID:1JcfbMU3
そんな甘い考えでやっちまったんだろうなあ
2016/01/29(金) 15:58:28.60ID:BQRaRgTF
与えられたテキストがUCS16に合致するか判定するアルゴリズムってある?
2016/01/29(金) 16:42:21.91ID:aBCIPjTo
iconvはルールが厳しいから
入ロクおかしければ変換失敗する
2016/01/30(土) 22:17:33.35ID:4i/PfDlC
nkfは、ライブラリとしては中途半端なんだよな。
スタティックライブラリとして利用可能にしてほしい。
2016/01/31(日) 00:56:53.78ID:1gNPM3q2
nkfって厳密さより何となく動くこと重視してるし
変換も自然とは言いがたい独自なのあるから注意
2016/02/01(月) 00:21:45.94ID:AuVBRc/d
ほええそういうものなのか
2016/02/03(水) 21:14:57.17ID:uf0uQxAG
シフトJISを作るときに2バイト目が0x00-7Fを避けるようにはできなかったのかな?
こうすればダメ文字問題も起こらないのに。
2016/02/03(水) 21:41:36.87ID:Fx9BpiPG
>>160
半角カナは1バイト
漢字は2バイト
って制約があるから無理
2016/02/03(水) 21:50:14.56ID:mmJ5x1I8
>>161は会話のできないあすぺ
2016/02/03(水) 21:58:17.93ID:mmJ5x1I8
できなくはなかっただろうな
FFと1バイト目の半角カナを避けても
63×127=8001文字は使える
2016/02/03(水) 23:45:43.20ID:uf0uQxAG
Unicodeがあるのに今さらという感じはするけど
半角文字は1バイト全角文字は2バイトのままで
2バイト目が00-7Fにならない新文字コードがあってもいいと思う。
2016/02/03(水) 23:58:17.15ID:FE/plTpc
そして三水四水を入れる領域が足りなくなり後のMSに恨まれると。
2016/02/04(木) 12:35:29.01ID:NB0syLHO
>>164
文字コードと符号化の違い分かってる?
そもそもシフトJISをサポートしてないソフトでシフトJISを使ったら問題出たってだけでしょ
2016/02/04(木) 13:06:32.74ID:dTOEAfAy
>>164
もう全く必要ない
2016/02/04(木) 14:58:00.09ID:pUsIARbq
シフトJISの反省の上に?作られたのが0x00-7FをASCIIにしか使わない日本語EUC(EUC-JP)なんだから
それでいいじゃんって気がするのだけど
そんなに半角カナが大事か

>>163
ISO/IEC 2022の94*94を47*188に変換するって分かりやすさ優先でこうなったんだっけ?
2016/02/04(木) 16:01:14.78ID:dTOEAfAy
>>168
EUCはISO 2022ルールに則っとってる
ISO 2022はすでに存在した
半角カナも使える
2016/02/04(木) 19:20:10.85ID:EFnVMbsO
>>169
>>168は半角カナを1バイトに納めることがそんなに優先かと言ってる

>>168
確証は無いけど、分かりやすさ・計算の単純さ優先の結果だと思ってた
171デフォルトの名無しさん
垢版 |
2016/02/04(木) 23:06:09.90ID:WWqaejBP
>>166
もっと昔からある EUC を処理するには 8ビットクリーンなプログラムであれば事足りる。
ISO 8859 もそうだ。だからコンパイラも特別な処理などしなかった。
シフトJISもそうできなかったのかという話じゃないのか?
2016/02/04(木) 23:35:33.23ID:gW2sFWg4
むしろ解釈できない文字コードを通すことがおかしい
たまたま問題が見つからなかった、コンパイラがエラーを出さずに処理を終えたからOKとするなんてアホ
2016/02/05(金) 02:34:16.13ID:EN3ElRH3
>>171
8ビットクリーンならEUC-JPを問題なく使えるかというとそうでもなくて
上位バイトと下位バイトが別れちゃう問題は発生しうる

シフトjisの「表」のあとに\を入れるみたいなバッドノウハウが目立つのでシフトJISに
問題があるように見えるのかもしれないけど、本質的には対応してないものを
勝手に使って文句言ってるだけじゃないかな
2016/02/05(金) 02:44:24.24ID:k2yclqL8
上位バイトと下位バイトが別れる件はダメ文字とは別件だから
最初の人の要求に対しては問題にならない
175デフォルトの名無しさん
垢版 |
2016/02/06(土) 14:03:11.00ID:sR9TSGCJ
>>173
対応してないから出来ないなんてことが起こるのはシフトJISだけだよ。
ダメ文字のせいで正規表現すら書けない。誰もやりたがらないような裏技はあるけどね。
2016/02/06(土) 15:14:13.70ID:zVjqWScH
自分が間違ったやり方をしていたけど問題になったのはAだけだ
→だからAが悪い

まさにこういう発想がクソ
しかも自分の知っている文字コードが全てだと勘違いしていてたちが悪い
2016/02/06(土) 15:45:39.28ID:P3+owK3w
ビットマップのフォントデータ(16×16)を使って
レトロな電光掲示板を作ってみよう、と思う
http://i.imgur.com/owubbp4.png
2016/02/06(土) 18:59:39.30ID:Ps0oIAyd
UTF-8なら漢字やかなに00-7Fは使わないけどな
って、そういう話をしてるわけじゃないのか。
2016/02/06(土) 19:36:29.58ID:uSRKfZgb
>>176
しかしShift JISはかなり質が悪い
2016/02/06(土) 19:41:15.78ID:MiOvJZDJ
どうしてWindowsは出来の悪い方ばっかり選択するんだろうか
cp932といいUTF-16といい…
181デフォルトの名無しさん
垢版 |
2016/02/06(土) 20:34:21.53ID:sR9TSGCJ
>>178
そういう話をしてるつもりだけど、そうでない人もいるようだ。
2016/02/07(日) 08:00:22.03ID:+iI8pPYd
エスケープシーケンスよりCP932の方がまだマシだし、
CP932よりUCS-2の方が多少はマシだったからでしょ
183デフォルトの名無しさん
垢版 |
2016/02/07(日) 13:34:15.00ID:COqNuXpv
>>173
今更だけど、文字が分断される可能性についても公平を期すために触れておくよ。
単純にバイト数で分割する場合等を除けば、ほとんどはパターンマッチにおける誤マッチが原因だろう。
strchr や strstr 、あるいはもっと高度なライブラリを使った結果かもしれない。
探すパターンに [\100-\176] にマッチする文字が含まれているなら EUC では誤マッチは起こらない。
シフトJISではダメ文字のせいで誤マッチが起こりうる。
実際に問題になるのはほとんどがこのケース。
grep "\]"
などとやろうものなら悲惨なことになる。
探すパターンがマルチバイト文字だけなら EUC でもシフトJISと同程度には誤マッチが起こりうる。
しかし実際にはほとんど起こらない。
もちろん起こるときは起こるし対策も出来るが対策は速度の低下と引換だ。
30 年前の CPU クロックは 10MHz 程度だったので速度も重要だった。
ほとんど起こらない上に致命的でもないなら速度を犠牲にしてまで常に対策を講じる必要は無い。
ちなみに対策だが、EUC で grep する場合なら
egrep "^([\000-\177]|\216[\240-\337]|\217[\241-\376][\241-\376]|[\241-\376][\241-\376])*$pattern"
的なことをするプログラムを grep_euc とかそういう名前で作っておけばいい。
シフトJISの場合はこれに加えてシフトJISな部分を 8 進エスケープシーケンスに置き換える必要がある。
同じやり方で iso-2022-jp も処理できる。
シフトJISしか通さない grep など技術的には邪魔なだけだよ。
2016/02/07(日) 13:49:06.41ID:GW5WZ8T2
>>183
長文の駄文乙
文字処理を文字単位でなくバイナリデータで行うのをやめた方がいいぞ
2016/02/07(日) 15:37:08.80ID:F/ILMG/l
>>183
"\]"←おおESC、これでアニメ作ったもんじゃ

>>184
ビット操作は頭の体操になるよ↓
http://i.imgur.com/ibjeaA8.png
2016/02/07(日) 20:14:33.59ID:lDI02uIo
grepはいつutf16対応してくれるんじゃぁ
ふだんLinux使ってるんだがwinのソースコードはなぜかutf16なんでいつも困っとるんじゃぁ
nkfで変換するのめんどいんじゃあ
2016/02/07(日) 21:05:14.46ID:+iI8pPYd
utf16のそーすとか見たこと無いな
2016/02/08(月) 01:36:20.73ID:0XuKQtD5
>>180
UTF-16はそのころUCS-2しかなかったんだから仕方ないやろ

個人的にWindowsはAとWはそのままでもいいから
標準CライブラリとC++ライブラリはUTF-8を使ってくれるようにしてくれれば不満ないんだけどな。
2016/02/08(月) 05:19:47.55ID:x/5r9wp6
>>188
全然仕方なくないどころか、むしろまた先走ってやっちまったとしか
2016/02/08(月) 09:34:53.73ID:AxqrebA9
UTF-16固定とか基地外沙汰
ackやagもUTF-16は華麗にスルー
2016/02/08(月) 22:30:39.07ID:ti0XuUyR
EUCは目糞鼻糞だし、当時の記録媒体でUTF-8とか頭おかしいレベルなのに
一体どうしたかったのか
2016/02/08(月) 22:35:16.47ID:HMUrPVh/
ただマイクロソフトを非難したいだけのキティGUYに何を。
こういうのは誰でもいいから攻撃対象を設けてガス抜きさせてやらないといかん。
2016/02/08(月) 23:02:30.93ID:sawB/DI+
SHIFT_JISよりEUC-JPの方がマシ、UTF-16よりUTF-8の方がマシってだけでしょ
マイクロソフトを非難したいだけに見えるとしたら相当なバイアス掛かってると思うよ
2016/02/09(火) 00:48:21.70ID:TCPuRlam
>>191
> 当時の記録媒体でUTF-8とか頭おかしいレベルなのに

kwsk

と言っても
> EUCは目糞鼻糞だしょ
なんて言ってる奴のいうことが理解できるかどうか…
2016/02/09(火) 05:16:13.78ID:K12Uxl59
UTF-8のRFCが出たのは2003年
その頃には80GBのHDDを一般人が変える時代
テキストの容量が問題になるとか無いわ

個人的にはいつまで経ってもsetlocaleでUTF-8を指定出来ない、代替の方法も用意されないWindowsは非難されて当然だと思うけどな。
2016/02/09(火) 07:15:08.73ID:4WJVGAJH
Windowsの今の文字コードの設計のベースは1991年か1992年に
Unicode1.0.0をもとに作られたはず

ちなみにその頃から「〜」はU+FF5Eに存在した
2016/02/09(火) 07:20:39.41ID:AjhTI0tJ
当時の記録媒体言ってるのはWindowsNTの時代な
その当時にUTF-8みたいな実装してもアホでしょ

それとUTF-8を率先して使用してる理由ってEUC環境が糞だったからでしょ
EUC環境の時代って外人様のソフトウェアで漢字の表示すらままならなかったよね
2016/02/09(火) 07:37:26.98ID:AjhTI0tJ
まあなんにせよUnicodeでデータ交換できるようになって
EUCゴミ環境が消えテクノは良い事だわ
EUCありがとうバイバイ
2016/02/09(火) 08:47:31.92ID:K12Uxl59
同じようにWindowsのCP932もさっさと消えてほしいんだけどな
2016/02/09(火) 11:12:55.58ID:nhb546WZ
今でも新規作成の全文章を統計取ると、
cp932の方が多いんじゃないか。
結局全くプログラムかかないひとが
何の文字コード使ってるかが焦点で、
プログラム書く人間の文字コードなんざ焦点じゃないんだよね。
2016/02/09(火) 11:31:59.64ID:gJW4evIq
>>200
最多はwordでunicodeでしょ
ちなみにwordをunicode化したのは日本人
2016/02/09(火) 11:32:56.66ID:gJW4evIq
MSは昔からAPIを移行改善していくのが下手
2016/02/09(火) 22:21:12.66ID:K12Uxl59
電話用のWindowsもCP932とUTF16ならそのまま安らかに死んでほしいんだけどどうなん?
2016/02/09(火) 22:44:37.32ID:AjhTI0tJ
死ぬことはないよ
生まれてすらいないからね
2016/02/10(水) 05:29:25.59ID:ShaMeiRT
産まれる前に死ぬってあると思うけど?
2016/02/10(水) 20:10:05.19ID:NIAqtvX5
文字コードはUnicodeで統一されつつあるけど
改行コードが統一される動きはないよな
2016/02/10(水) 20:11:34.12ID:jTWkF3R0
>>187
英語だけなら問題ないが日本語でコメントかくととたんにやっかい
おそらくwinの内部処理がutf16なんでvcでコンパイラ作る→utf16しか受け付けない
になるんだと思う
2016/02/10(水) 20:14:06.58ID:DqOeVQNQ
何言ってんだこいつ
2016/02/10(水) 20:19:14.56ID:urcLBA+T
おまえはお馬鹿な発言する人にいつもくってかかるのか
2016/02/10(水) 20:27:11.86ID:jTWkF3R0
>>208>>209
バカ乙
2016/02/10(水) 20:58:07.57ID:DqOeVQNQ
絵に描いたような「バカと言う奴がバカ」
2016/02/10(水) 22:46:23.85ID:MNP/EF3f
最近のMSVCはUTF-8のソースコード食ってくれるよ
新しくMSVCで読み込んだソースがUTF-8なのにBOMがないと自動判定に失敗して意味不明なコンパイルエラーになることも多いけど
2016/02/11(木) 00:53:59.61ID:V6zkYN3z
>>206
そうか?
ローカルデータで復帰付けてるのWindowsくらいじゃないか?
HTYP, SMTPなんかは復帰改行だけど
2016/02/11(木) 21:55:56.34ID:xlY9kt9Q
1バイトの英数字を平仮名と同じ幅で表示するフォントがあれば
全角英数字は使わないと思うんだが全角英数字も互換性のためだけに残されていると考えていいのか
2016/02/11(木) 23:11:32.22ID:e91ojKTo
>>214
JIS X 0208は、ASCIIやJIS X 0201と併用せずに使うことも想定されてる
だから文字集合に英数記号が含まれるのは当然
併用する場合ISO 2022的には重複符号化禁止だから本来使っちゃいけない
けど運用では守られてなかったし、併用前提の文字コードもあった
Unicodeは過去の利用例をほぼ取り込むのが前提だから
互換文字として全角文字を取り込んだ
2016/02/11(木) 23:19:16.34ID:sKuqfOHl
ではU+3000が互換文字領域に無いのは何故なんだぜ
2016/02/11(木) 23:22:30.10ID:e91ojKTo
なんとか空白はどうしても入れたい奴があったから全部入れることにしたんじゃないのかね
最初から20種類くらいあったでしょ
2016/02/12(金) 00:18:36.22ID:VRdJSDW+
つまり全角を貫いたおおたさん大勝利ってことだな
2016/02/12(金) 14:58:04.35ID:E8URvzDX
空白もそうだけど横棒も統合せずに放り込んだのが多すぎ
U+2015 HORIZONTAL BARってどこから生えて来たんだろ
2016/02/12(金) 22:43:58.37ID:06flQvvq
VERTICALなら生えてきそうだけどHORIZONTALに生えるイメージは無いな
2016/02/13(土) 10:24:02.68ID:vrowrAaX
————
――――
2016/02/13(土) 21:46:29.51ID:UfGCg9+I
>>211
先に208でバカにしてきたのは208なんだが語るに落ちてねーか?
それとも「バカという単語は書いてないから自分はセーフ」ってことだろうか
バカの考えることはわからん
2016/02/13(土) 21:50:44.90ID:DWYdQVEl
バカの考えること=お前の考えること

自分が何考えてるかもわかんないなら救いようがないな。清原と一緒に逮捕されてろ
2016/02/15(月) 00:32:04.19ID:ntkpNKWd
>>212
もうすぐUpdate2で改善されるからそれまで待て
2016/02/15(月) 16:58:33.36ID:4pgZ8RvT
>>221
上がU+2014 EM DASHで
下がU+2015 HORIZONTAL BAR?
EM DASHは並べても切れて見えるなフォント次第だろうけど
2016/02/16(火) 07:17:36.55ID:XdPvZNKx
>>223
なんだ適当に言葉並べてるだけか
人工無能の方がマシだなこりゃ
おバカさん
2016/02/20(土) 22:49:46.68ID:2GCqu0fo
MS-excelのcodeという関数の出力がShift-JISだと勘違いしていた初心者の俺。
あやうく大恥をかく前に気づいてセーフ。
2016/02/24(水) 01:54:36.77ID:hnpOvXF7
UNICODEが年々キモくなるんですけど、新しいモジコードは開発されていますか(´・ω・`)?
2016/02/24(水) 12:06:50.24ID:9rhAu1z5
>>228
君の出番だよ
君が第二の坂村健だ
2016/02/24(水) 17:55:57.73ID:zehZo7UI
完成してMicrosoftとAppleとGoogleとLinuxが採用したら知らせてくれ
2016/02/24(水) 20:07:26.11ID:Tso1kbi5
バイトオーダーがややこしいから1byteを1bitにするか
逆に1byteを64bitなどの大きい値にしたらどうよ?
コンピューターの黎明期は1byteが8bit以外の物もあったんだから
それも不可能ではないだろう。
2016/02/24(水) 20:26:02.29ID:JXxoXIUe
馬鹿って馬鹿だよね
2016/02/25(木) 00:25:47.28ID:loBITXzr
>>231
コンピュータの黎明期はbyteと云う単位ではなくて、Wordという単位だったと
思いますよ。1word何byteとかいっていて、コンピュータによって、Wordのbit数が
違っていたように思います。
大体1短Wordが20bit+1符号bit,1長wordが短wordの2倍で40bit+1符号bitというのが
普通だったとおもいますが、CDCの3600は、1短wordが32bit、1長wordが64bitではなかった
かと思います。
なにしろ、1960年代のことなので、記憶違いがあるかもしれません。
2016/02/25(木) 20:46:03.90ID:BzGy0Z9t
Unicodeに何が追加されようと大半の日本語フォントはAdobe-Japan1-6準拠だから
ほとんど恩恵がない
AdobeはPanCJKなんて漢字マニアしか喜ばないものを作ってないで
そろそろAJ17に取り掛かってくれ
2016/02/26(金) 12:15:47.32ID:YTHIspbV
Wordは今でも使うだろ普通に。
昔あったのはWord機、生き残りがByte機。
2016/02/26(金) 17:03:45.40ID:iAHBb9xH
>>152
安岡センセイ大敗北w
http://srad.jp/%7Eyasuoka/journal/600756
2016/02/26(金) 19:35:56.60ID:Ckpzri88
>>235
byteかwordかというのは
アドレッシング
アクセス最小単位
アラインメント
と3つの軸があって
最後のはbyte単位でないのが主流
2016/02/26(金) 19:54:30.62ID:d58rhTQn
キモはアルゴリズムでデータソースでしかないものに文句つけてもイチャモンでしかないだろう
知らんけど
2016/02/26(金) 21:57:25.44ID:jlaESRTF
アルゴリズムもバグってるみたいよ
2016/02/27(土) 01:15:53.58ID:1kXiMiWp
>>237
アーキテクチャ上は最後のも大丈夫なんじゃないの?
メモリにアクセスするハードウェア側のインタフェースの話じゃないよね。
2016/03/02(水) 11:22:17.92ID:5SSZmY+T
カタカナが多すぎて頭こんがらんがってきた
2016/03/02(水) 13:37:01.48ID:H2CN+/B0
トゥゲザーしようぜ
2016/03/02(水) 13:52:03.06ID:Pi6Moa3o
シェアしたいと思います
2016/03/04(金) 11:07:29.81ID:aAJqKKxk
1文字に32bit使うなら一般的な組み合わせの合成文字は
全て合成済み文字にしてコードを割り当てても足りるんじゃないだろうか
そうして合成文字は外字のようなオプション的な扱いにしたらいいと思うんだけどね
2016/03/04(金) 11:29:46.53ID:ex0V5X9T
何のいみがあるのかわからんなあ
2016/03/04(金) 12:41:46.94ID:aAJqKKxk
>>245
一般的な文字では32bit固定長にできる
2016/03/04(金) 13:27:03.56ID:qO6Wo8x7
「一般的な組み合わせ」が不変ならいいけど、現実にはいくらでも流動しちゃうのが問題じゃないかな。
これまでにも「今の用途ならこれだけあれば十分」って感覚で半端に作られた負の遺産がたくさんあるよね。

合成文字の仕組み自体を全廃・強制力付きで禁止するのならともかく、
オプションとして残すのなら新たに余計なものを作っただけで終わるのが見えてる。
2016/03/04(金) 18:21:11.26ID:IERVyLvo
ISO/IEC 6937対ISO/IEC 8859シリーズの戦いはもう勘弁
2016/03/15(火) 10:56:22.12ID:ZYJuXZMf
>>228
Unicodeで得られた知見を基に反省を活かして新しいのを作ってほしいね。
Unicodeもコンセプトは賛成だし規格に例外は付き物だけど、あまりにも継ぎ接ぎだらけでスパゲティコードみたいになってるのは清算したいね。
2016/04/02(土) 13:20:35.07ID:raCNCQWh
Unicodeはバージョンアップ時に精算するのが得意な方
切り捨てバンザイ主義
これ以上切り捨てたら誰も使ってはくれない
2016/04/06(水) 17:49:51.21ID:APP4s98L
UTS #52: Unicode Emoji Mechanisms
http://www.unicode.org/reports/tr52/tr52-1.html

> 3.5 Hair Attribute
>
> Syntax
>
> Tag-Base   Hair_Base
> Tag-Key    Tag-H
> Tag-Value   Exactly one of the following tag-valueChars:
>        tag-valueChar Description
>        Tag-k Black-haired
>        Tag-s Blonde (also sandy-haired)
>        Tag-b Brown (Brunette)
>        Tag-r Redhead (Ginger)
>        Tag-g Gray-haired
>        Tag-n Bald (no hair)

漫画・アニメキャラ用に赤髪、ピンク髪、緑髪、青髪、水髪、紫髪なんかも加えるべきじゃないですかね。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況