文字コード総合スレ part10
プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
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/
■類似・姉妹過去スレ
文字コード統一スレ 1文字目
http://pc8.2ch.net/test/read.cgi/tech/1109171258/
■隔離過去スレ:
UnicodeとUTF-8の違いは?
http://pc12.2ch.net/test/read.cgi/tech/1177930957/
UnicodeとUTF-8の違いは? その2
http://hibari.2ch.net/test/read.cgi/tech/1274937437/
UnicodeとUTF-8の違いは? その2
http://toro.2ch.net/test/read.cgi/tech/1291075205/
UnicodeとUTF-8の違い4(インディアン隔離スレ)
http://toro.2ch.net/test/read.cgi/tech/1342963035/
■参考サイト
Unicode Home Page
http://www.unicode.org/
Unicodeのバージョンと追加された文字達一覧
http://www.unicode.org/charts/About.html
Java Character Encodings
http://web.archive.org/web/20100503121151/http://www.ingrid.org/java/i18n/encoding/shift_jis.html
euc.JP: tech docs, BeOS tools
http://euc.jp/
IANA: Character Sets
http://www.iana.org/assignments/character-sets
Legacy Encoding Project
http://sourceforge.jp/projects/legacy-encoding/
CP50220 森山さんの説明
http://lists.sourceforge.jp/mailman/archives/legacy-encoding-talk-ja/2006-March/000002.html
JISX4061 日本語文字列照合順番
http://www.jisc.go.jp/
JTC1/SC2/WG2 - ISO/IEC 10646 - UCS
http://std.dkuug.dk/JTC1/SC2/WG2/
ISO/IEC JTC1/SC2/WG2/IRG Ideographic Rapporteur Group
http://appsrv.cse.cuhk.edu.hk/~irg/
SO/IEC International Register of Coded Character Sets
http://itscj.ipsj.or.jp/ISO-IR/index.html からreferer付きで入場
ISO-IR - 2.8.1 Coding systems with Standard return
http://www.itscj.ipsj.or.jp/ISO-IR/2-8-1.htm
ISO-IR - 2.8.2 Coding Systems without Standard return
http://www.itscj.ipsj.or.jp/ISO-IR/2-8-2.htm
日本の委員 (JSC2)
http://www.itscj.ipsj.or.jp/meibo/020000.pdf
■これまでに行われた議論
・WinでCP50220 は Unicode からマルチバイト文字への変換でいわゆる半角カタカナを全角カタカナに置き換え
内部的には Unicode -> CP932 -> CP5022x って変換な気もする
・人名をソートかけたらバストサイズ順の並びになる?
・Shift JIS や EUC-JP や Big5 や GB なんかをUnicode に変換してしまうと、ラウンドトリップは保証されるか
・単一情報をソースの文字コード(or 言語)情報なしに元に戻したい (統計的に文字の出現確率なんかを調べる)
・PC-98x1シリーズのMS-DOSはShift_JISだが漢字ROMはJIS、変換は何処で行っていた?
・0x5cをUnicodeにするときにバックスラッシュに置き換えるか円マークに置き換えるかで、逆変換時に結果が変わるの問題
・丸付き数字は機種依存文字か?。MSIME2007ではCP932に収録されてない文字は「環境依存文字」って表示。
Macではフォントによっては表示されないし、フォントによっては表示される
・Shift_JISと名乗っているCP932やISO-2022-JPと名乗っているCP50220を表示(Unicodeに変換)する際に
機種依存文字はサポートされるか?
・Safari文字コード変換のバグは
・Microsoft文字コード変換のバグは
・U+31F0..U+31FF(アイヌ語表記用小書きカタカナ)が入ってない件
・なぜ携帯業界はunicode化しないのか?
・このスレへの書き込みはブラウザが2chへ送り出す時点でUnicodeからShift_JISに変換しているのか
・文字化けに強いishフォーマットでエロ画像を交換する場合、ssより、s7のほうが化けにくい
・中国語の簡体字では、へんやつくりが簡略化されるなら、その文字も自動的に簡略化して表記する国家規格が有る
・中国語の「?心」簡化政策によると「?(U+6076)」に統一。口偏+?(U+6076)は普通に使われているがUnicodeにはない
・日本人のニーズが満たせないのも確かなので原規格分離(中国では「曾→曽」は簡体字と繁体字の違いとはみなされていないとか)
・UNICODEを扱うプログラムはサロゲートをぶったぎられた入力が渡されてくる場合にも備えろって→YES
・UnicodeとUTF-8の違いは?
・日本のCJK Ext.D Submissionに{魚針}が含まれてる件
U+9C75(魚箴)は強烈。いくら何でも違いすぎる。(魚針)
ひょっとしたら後で実は別字だったとか日本では異体字だが中国では別字とかになるかも知れんぞ。
中国ではってレベルじゃねーぞ。
・Windows Vista での「IME パッド - 文字一覧」の「JIS X 0213 (1面)」のバグ
UTF-16: 0x304B 0x309A → Unicode: U+FD61809A (間違い) (ISO/IEC10646はU+10FFFFまで)
サロゲートペアからコードポイントを引き出す計算を無理やり適用(間違い)
((0x304B - 0xD800) << 10) + (0x309A - 0xDC00) + 0x10000が 0xFD61809A になる。
・文字コードではインドカレーは飲み物か否か。カレーパンうまうま。
・CJK混在の漢字環境ってどうやって、切り分ければいいの? → ムリです。
・Winzipで保存されるファイル名が文字化け→zipではコードページ情報が無い。直接zipファイルから切り出せ
・Unicodeは言語情報を直接扱わない。 多言語の混在表現は(unicodeでは)できないか
・Unicode文字列リストを各国言語を考慮してソートしたいんですが → ムリです。
・Unicodeサニタイズが面倒になるのか
・SJISとUNICODEの判別はどのようにすればいいですか?BOM。無ければ、統計判断。 ライブラリを使うが吉
・ところでケータイのUnicode対応度って実際どうよ? → ウンコマークもUnicodeに追加されるんだな。
・WindowsXP で フォルダに使用できないフォルダ名はどうやって判定
→ ちょっとアホな方法だけど、%TEMP% フォルダの下で実際に作ってみて。本当に作成できるかどうかで判断。
・TwitterのWebインターフェイスからだと、サロゲートペアは2文字としてカウント。140字打てない 。
・Unicode 5.2で追加されたUnicodeSMP(第1面)、Unicode 5.1で未定義だったSMPのコードポイントや第15、第16面が
Windows7では表示されない。 → 和田研細丸ゴシック2004ARIBはARIB外字を含んでいる。
・WindowsXP SP3でMicrosoftのJIS2004フォント環境でサロゲートペア文字が表示されない。→
コントロールパネル-地域と言語のオプション-[言語]タブで
「複合文字や右から左方向に書く言語 (タイ語を含む) のファイルをインストールする」にチェック
・URLの%で続く2桁の0-9、A-Fへの変換は、UTF-8→urlencodeによる。RFC1738を嫁。
・菊紋、桐紋、葵紋などは文字か?海栗コードへの挿入は難しい。そこでTRONだ!!
・元号を安置する場所はJIS第三で確保済み。ウニコードでブロックを確保は政治力次第。
・元号は個人名ではない。特定の時間軸基準に数える年号を漢字で指す文字。
陛下の崩御後必ずしも元号が追号になるわけではない。むしろ違う場合が多い。昭和54年法律43号の元号法参照。
・文末でなければ"0"+ASCII7ビット、文末なら"1"+ASCII7ビットというエンコード。 → ヌル1バイトが貴重な時代からの負の遺産。
・Windows7出荷時に未定義だったコードポイントはフォント入れても豆腐になる。Unicode5.2は表示しない。欝だ。
・Unicode6ドラフトでPILE_OF_POO文字確定。ウニコードがもはやイミフ。SerifとSans-Serifで幅に違いは出る?
・shift-jisからUTF-8変換でサイズ1.5倍。でも圧縮すれば平均10%増加程度。用途に合わせて使うべし。
・「wchar_tは>849の嫁。>849の許可無くしてUTF16だの32だの無理矢理突っ込むのは許さん。」
・電子演算機では文字化けなんて飾りです。UTF-8/UTF16の人にはそれがわからんのですよ。
・twitterではUserAgentでブラウザ識別、一部文字を画面表示に差し替えているらしい。
variation selector VS15(Ufe0e,text)かVS16(Ufe0f,emoji)で識別して表示する方法もある
・マックで[¥]キー押すと前に押された[英数|alt|カナ]によりそれぞれ[半角¥|半角\|全角¥]となる
・躍り字(おどりじ)特殊記号の一群で、々、ヽ、ゝなど
・言語、対応するコードページ、文字数/tech/1401301779/202
・Windows3.1のコードページ一覧
・Windows3.51での韓国語のWindowsNT3.5プログラムを表示することはできない(大移動のため)
・Windows3.1、9x自体はJIS2004フォントも問題なく使える(9xではSJISが内部で使用されているため)
・ベトナム文字コードVISCII、VISCII-2(TCVN5712-1993は3種類ある)、TCVN 6909
・漢字は部首順→画数順に並べる、という慣例が漢和辞典の世界にはあるので第2水準ではそれにならった
・文字列の、社会的慣習を踏まえたソート(「辞書順」とか)は一文字ずつ比較では不可能
■ライブラリ
IBM Globalization - ICU
http://www-306.ibm.com/software/globalization/icu/
NKF32.DLL
http://www.vector.co.jp/soft/win95/util/se020949.html
バベル
http://tricklib.com/cxx/ex/babel/
バベルの文字コード判定で使ってる日本語文書内での各文字の出現頻度データです。
http://tricklib.com/cxx/ex/babel/scoremap.csv
mlang
http://msdn.microsoft.com/ja-jp/library/aa767865(en-us).aspx
iconv
http://www.gnu.org/software/libiconv/
ICU
http://www.icu-project.org/
----
■JavaScriptライブラリ
ecl.js (EUCJP,SJIS,JIS7,JIS8,UNICODE,UTF7,UTF8,UTF16LE)
http://www.junoe.jp/downloads/itoh/enc_js.shtml
Encoding.js (JIS,UTF8,EUCJP,SJIS,UNICODE)
http://polygon-planet-log.blogspot.jp/2012/04/javascript.html
ecl_array.js
http://qiita.com/weal/items/3b3ddfb8157047119554
(よく使われる各言語用ライブラリ指摘してください。次スレテンプレにいれますので)
■その他リンクとか
グリフウィキ(GlyphWiki)
http://glyphwiki.org/wiki/GlyphWiki
Javaでサポートされているエンコーディング
http://web.archive.org/web/20070528013014/http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/intl/encoding.doc.html
Windows のファイル名の文字コードについて
http://www-06.ibm.com/jp/linux/tech/doc/007aca9b.html
文字コード入門
http://www.shuiren.org/chuden/teach/code/index-j.html
機種依存文字の歴史
http://mikeneko.creator.club.ne.jp/~lab/kcode/vendor.html
戸籍統一文字とUNICODEの簡単な違いの説明
http://www.seiai.ed.jp/sys/text/csb11/chs03/s03a080.html
日立の戸籍手続オンラインシステム構築のための標準仕様書
http://www.hitachi.co.jp/Prod/comp/app/kosekionline/yougo_0483.html
XMAP3 メインフレームXMAP3 メインフレーム文字コードの違い
http://itdoc.hitachi.co.jp/manuals/3020/3020759580/G5950334.HTM
(候補あれば教えてください、追加します)
■単語一覧
・UTF-16は16ビット単位にエンコードするけど、サロゲートペアがある
表現できる文字空間はUTF-8と同じく20ビットとちょっと
・丸付き数字は機種依存文字か?MSIME2007ではCP932に収録されてない文字は「環境依存文字」って表示。
MacJapaneseではフォントによっては表示されないし、フォントによっては表示される。
今のMac(内部Unicodeアプリ)は、フォント依存ではなくアプリ依存。
似非ISO-2022-JPや似非Shift_JISのドキュメント中の丸付き数字は、
素直にAppleのAPIを使ってるアプリならゲタ(U+FFFD)になる。
・Mail.appではISO-2022-JPに収まらずCP932に収まるメールは、含まれる字種によって
charset=CP932で送信される場合とISO-2022-JP(もどき)で送信される場合がある
・MSでのウニコードとSJIS変換のバグ。
U+007E TILDE <-> Shift_JIS 0x7E OVERLINE
U+301C WAVE DASH -> Shift_JIS NA 【MSの問題】
U+FF5E FULLWIDTH TILDE <-> Shift_JIS 0x8160 WAVE DASH 【MSの問題】
・SafariでのウニコードとSJIS変換のバグ。
U+007E TILDE -> Shift_JIS 0x8160 WAVE DASH 【Safariの問題】
U+301C WAVE DASH <-> Shift_JIS 0x8160 WAVE DASH
U+FF5E FULLWIDTH TILDE <-> Shift_JIS NA
・winzipの規格ではファイル名のコードページ指定もしくは記録情報が存在しない。
解決策:取り合えず、MSWin+JPではShift-jisでファイル自体には保存されている。
MACOSX=Unicode,Unix=UTF/EUC/S-JISどれでもありえる。文字に関係なくLocalLangで
再変換しているので、それをしなければよい。
・charlenでの文字列長の判定はプラットフォームにより返り値が違う(機種依存文字等)。マニュアル嫁。
・JISのエスケープシーケンスが正しく認識されない本文とか。
'0x1b, 0x24, 0x42' という3バイトを先頭に、'0x1b, 0x28, 0x42' を末尾に追加汁。
あるいはhttp://masaka.dw.land.to/mr/jmr.phpとか。
テンプレ終わり。嵐・キチガイスルーでまったり進行。さあ。茶でもどうぞー
| | ソ~~
| |∧_∧
|_|´・ω・`) どぞ~。
|愛| o ヽコト∬∬∬∬∬∬∬∬∬∬∬∬∬∬∬
| ̄|―u' 旦旦旦旦旦旦旦旦旦旦旦旦旦旦
このIDをNGリストに追加する
今後このIDの書き込みやスレッドを表示したくない場合、以下のボタンをクリックしてください。
NGリストに追加