文字コード総合スレ part9
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2014/05/29(木) 03:29:39.61ID:i1u97cMXUTF-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/
0232223
2014/09/29(月) 14:25:42.12ID:GzMQOV/O0233デフォルトの名無しさん
2014/09/29(月) 20:00:33.45ID:2JaSDa+00234デフォルトの名無しさん
2014/09/29(月) 21:01:59.60ID:mj/8iUnW図書館いってきた
自由と正義2014年9月号46〜52ページ
マイナンバーと住基ネットの話で文字コードは無かったけど
これ榎並批判なのかな
0235デフォルトの名無しさん
2014/10/01(水) 00:06:36.16ID:paW0CBBp0236デフォルトの名無しさん
2014/10/01(水) 02:24:53.09ID:zq79aPi20237デフォルトの名無しさん
2014/10/01(水) 09:10:23.59ID:AX2nUQvJ構造の解説あったのか。
以前探した時は見つけられなかったのでURL教えてほしい。
0238デフォルトの名無しさん
2014/10/02(木) 11:19:42.12ID:R0BKZCkIその改造版P_932.NLSでWin32sのOLE使うアプリで文字化けしたので
、まだ研究段階だな。
>>238
明示的には"Win32s"とは言っていないがWin32sのNLSの構造を
紹介している
umqの日記: NLS って難しい(2)
ttp://slashdot.jp/journal/244495/NLS-%E3%81%A3%E3%81%A6%E9%9B%A3%E3%81%97%E3%81%842
umqの日記: NLS って難しい(C)
ttp://slashdot.jp/journal/246657/NLS-%E3%81%A3%E3%81%A6%E9%9B%A3%E3%81%97%E3%81%84C
0239デフォルトの名無しさん
2014/10/02(木) 16:49:01.12ID:YCvfDaSdどんだけ
0240デフォルトの名無しさん
2014/10/02(木) 17:06:14.22ID:qq+mzlUzかがきぎくぐけげこご
あほだよな
0241デフォルトの名無しさん
2014/10/02(木) 17:16:14.10ID:BNNomDCE(で、第2水準ではそれにならった)
そういうことを知らずに思いつきを言ってるなぁ、って思われるだけ。
いずれにしても、文字列の、社会的慣習を踏まえたソート(たとえば本当の「辞書順」とか)は、
単純に一文字ずつ比較するだけでは不可能なので、そういう順序にすることに意味が無い。
0242デフォルトの名無しさん
2014/10/03(金) 00:49:09.00ID:8HQMxfzOaAbBcCdDeEfF...って並べる基地外もいるんだぜ、信じられん。
0243デフォルトの名無しさん
2014/10/03(金) 08:06:33.69ID:OynHM83kぁあぃいぅうぇえぉお
が正解
ただちぢっつづてでとど
とかイラっとくる
0244デフォルトの名無しさん
2014/10/03(金) 10:35:10.57ID:Tegb1mus0245デフォルトの名無しさん
2014/10/03(金) 11:05:16.22ID:Cqqmulyu0246デフォルトの名無しさん
2014/10/03(金) 12:37:12.56ID:AIsixZxMバカなの?
Shift-JISとか他の文字コードを使ったら逮捕にすればいいのに
0247デフォルトの名無しさん
2014/10/03(金) 12:41:03.37ID:lXIQAzKJ0248デフォルトの名無しさん
2014/10/03(金) 12:43:35.18ID:hjse6GjO0249デフォルトの名無しさん
2014/10/03(金) 12:49:56.93ID:Cqqmulyu0250デフォルトの名無しさん
2014/10/03(金) 14:04:03.24ID:8OTaypIY0251デフォルトの名無しさん
2014/10/03(金) 19:14:19.93ID:uCcPsxJ80252デフォルトの名無しさん
2014/10/03(金) 20:16:28.45ID:MM8EH8yDサイズが1.5倍になるのをばかげているとおもわないのですか?
0253デフォルトの名無しさん
2014/10/03(金) 20:20:56.54ID:MM8EH8yDいままで統一できた時代なんて無かったのだ
0254デフォルトの名無しさん
2014/10/03(金) 20:40:29.83ID:KKLEaHKT意外だった。
0255デフォルトの名無しさん
2014/10/03(金) 20:44:21.23ID:sUeMWuDQ世界中の全ての文字をカバーしていない
出るのが遅すぎて他のコードが浸透してる
windowsがSJIS(内部はuni)が標準
0256デフォルトの名無しさん
2014/10/03(金) 20:58:37.31ID:anb/lxLT嘘はいくない。SJISが標準なのはWin9xだけだ。日本語版WindowsのANSIがSJISなのと混同してないか?
0257デフォルトの名無しさん
2014/10/03(金) 21:03:34.66ID:Bj0U/nno0258デフォルトの名無しさん
2014/10/03(金) 21:14:17.04ID:sUeMWuDQメモ帳の標準コードとか
色々あると思うが違ったかな?
0259デフォルトの名無しさん
2014/10/03(金) 21:41:48.59ID:uCcPsxJ8打ち切ると予告している時代
既に新機能はW系関数のみの実装だし
0260デフォルトの名無しさん
2014/10/03(金) 22:20:19.44ID:KKLEaHKT0261デフォルトの名無しさん
2014/10/04(土) 00:20:15.91ID:TpSP81Tvutf8にbomつけたり、unicodeと銘打って実はUTF16-le、とかの方がタチ悪い。
0262デフォルトの名無しさん
2014/10/04(土) 00:24:06.50ID:DsEISyRL0263デフォルトの名無しさん
2014/10/04(土) 04:31:53.10ID:klgp9hPC0x5c(\u005c)、バックスラッシュ(\)はUNIX系では、
エスケープ文字として使い、直後の文字の特別な機能をなくす
C99, C++, GCC, make, シェルスクリプトなどで、
行末にバックスラッシュ(\)があれば改行せず、1行とみなす
その際、コメント内の行末に、
日本語の表(\u955c)、能(\u945c)などの文字があると、
文字の2バイト目が解釈されて、1行になってしまう
これらをダメ文字という
// 1行コメント
/* 〜 */
だから、これらのコメント内では、
行末の0x5cを解釈しないように、アプリを修正すればよい
0264デフォルトの名無しさん
2014/10/04(土) 04:42:15.71ID:f/g9snk1>これらをダメ文字という
お前が言ってるだけだろ
0265デフォルトの名無しさん
2014/10/04(土) 05:47:51.75ID:gNAxrtUM0266263
2014/10/04(土) 06:33:19.40ID:klgp9hPC全部がつながって、1行になってしまうね
行末にダメ文字があるときは、ダメ文字の後ろに、
\を置いて、表\ とすればよいけど、行がつながってしまう
0267デフォルトの名無しさん
2014/10/04(土) 07:48:43.39ID:TW/R31j/こういうのをバカ者という
0268デフォルトの名無しさん
2014/10/04(土) 08:26:20.70ID:M66Mgi8tシフトJISの文字列は、行の先頭から、ちゃんと1バイトずつよめば
1バイト目か2バイト目か判定できます。慣れてしまえば、非常にわかりやすい。
とばかしたり(途中だけよんだり)するから、判定できなくなる。
EUC-JPなんか、どうやって判定するんでしょうか。おれは、しらん。
0269デフォルトの名無しさん
2014/10/04(土) 09:05:55.62ID:wHKgiuGV0270デフォルトの名無しさん
2014/10/04(土) 09:16:10.45ID:X8tclADNところが、かのWindowsもファイルシステムは UTF-16 でしたとさ‥
0271デフォルトの名無しさん
2014/10/04(土) 09:23:14.02ID:X8tclADNSiftJIS が浸透しているところに、エスケープ文字の仕様がダメダメのダメリカ規格(エスケープ文字ではさんでエスケープする、とかそのエスケープ文字自体をエスケープするときどうするんだ?)を持ち込んで最下層(RS232Cを触る階層のことね)ではダメ字対応に四苦八苦。
端的にいえば送信側が楽するか受信側が楽するかの違いにすぎないんだが‥うちの会社は両方とも楽をするという極悪非道をベンダに押し付ける‥
UTF-8 が浸透するまで収まりそうもないね‥
0272デフォルトの名無しさん
2014/10/04(土) 09:47:20.90ID:fOqpWE8p>シフトJISの文字列は、行の先頭から、ちゃんと1バイトずつよめば
>1バイト目か2バイト目か判定できます。慣れてしまえば、非常にわかりやすい。
>とばかしたり(途中だけよんだり)するから、判定できなくなる。
お前さんもどっこいどっこいだよ。
テキストバッファの途中で判定できるアルゴリズムもある、と言うか普通は
速度や汎用性からそちらを使う。
0273デフォルトの名無しさん
2014/10/04(土) 09:52:16.66ID:mOBbhaTu0274デフォルトの名無しさん
2014/10/04(土) 09:54:44.14ID:fOqpWE8pウェブでも探せばあるでしょ。ただ今となっては古くて必要性の低い情報だから
埋もれてるかもね。
0275デフォルトの名無しさん
2014/10/04(土) 10:04:20.33ID:fOqpWE8p他にも沢山あるでしょ。
0276263
2014/10/04(土) 10:11:10.64ID:klgp9hPC>エスケープ文字ではさんでエスケープする、
>とかそのエスケープ文字自体をエスケープするときどうするんだ?
エスケープ文字って、バックスラッシュ(\)のことかい?
シェルスクリプトならこうなる
\\\\ → \\
1文字目が2文字目をエスケープ
3文字目が4文字目をエスケープ
0277263
2014/10/04(土) 10:23:41.64ID:klgp9hPC寺尾進のTeraPadを呼び出して、文字コードを変換すればよい
Win8にも対応しているし、日本人だし、たぶん間違いない
それか、Ruby。これも作者(Matz)が日本人
0278デフォルトの名無しさん
2014/10/04(土) 10:28:51.40ID:X8tclADNま、ふつうはそういう風にエスケープ文字を機能定義するもんだよね‥
ところがどっこい、「『エスケープ文字』と『エスケープ文字』ではさんだその間をエスケープ対象とする」という規格が存在するんだよ‥
ASTM1394/1381‥ああいろいろばれちゃうねえ‥文字で苦労しないダメリカの規格なんかほいほい採用しちゃだめだよね‥
0279デフォルトの名無しさん
2014/10/04(土) 10:31:29.66ID:TW/R31j/内部はでしょ?
かなりの所で表に出てくるのがどちらのコードか
http://www-06.ibm.com/jp/linux/tech/doc/007aca9b.html
勘違いしてるかな
0280デフォルトの名無しさん
2014/10/04(土) 10:33:25.14ID:yOXr2OF7今時内部Unicodeじゃないエディタなんて・・・
0281デフォルトの名無しさん
2014/10/04(土) 10:34:29.97ID:fOqpWE8plibiconvやらICUが普通に使われてるよ。
遅れてるのはWindowsだけだから。
0282263
2014/10/04(土) 10:42:47.81ID:klgp9hPC苦労しているからね
TRON、超漢字OS
そういえば、iPhoneの地図もひどいらしいね
0283デフォルトの名無しさん
2014/10/04(土) 10:46:01.44ID:fOqpWE8p0284デフォルトの名無しさん
2014/10/04(土) 10:47:00.61ID:X8tclADNその記事あやしいよ‥win95 のFAT32 LFN はすでにUTF-16 だったと記憶しているね、結構大騒ぎになった気が
0285デフォルトの名無しさん
2014/10/04(土) 11:01:31.05ID:TW/R31j/では信用できるところを教えて
経験上ファイル名はSJISコードだと思ってる
内部はuniだろうがね
0286デフォルトの名無しさん
2014/10/04(土) 11:04:43.36ID:j10VjSV20287デフォルトの名無しさん
2014/10/04(土) 11:08:20.98ID:X8tclADNFAT32 では一つのファイルは ShortFileName と LongFineName の二つの名前をもち、ShortFileName は Shift-JIS, LongFileName の方は UTF-16 だったはず。
0288デフォルトの名無しさん
2014/10/04(土) 11:17:11.93ID:TW/R31j/記事が怪しいと言うから当てになる情報聞きたかったが
FAT32で「はず」って言われても…
NTFSしか使ってないし
0289デフォルトの名無しさん
2014/10/04(土) 11:18:32.58ID:OmSkKYDb0290デフォルトの名無しさん
2014/10/04(土) 11:32:40.97ID:yOXr2OF7> (1) Windows カーネル内部では Unicode を使用
正しい。より正確にはUTF-16LE。
> (2) NTFS ファイルシステムに保存する際は Unicode を使用
正しい。より正確にはUTF-16LE。
> (3) CIFS プロトコルによるファイル転送の際は Unicode を使用
知らん。
> (4) FAT32 ファイルシステムに保存する際は SJIS に変換して保存
まあ、間違いではない。>>287の言うとおり。
> (5) Windows 上で稼動するアプリケーションには、Windows カーネルが SJIS に変換して渡す
びみょー。
ANSI APIを使う(古い)アプリには、SJIS(正確にはCP932)に変換して渡す。
Unicode API (Wide API)を使うアプリには、UTF-16LEのまま渡す。
0291デフォルトの名無しさん
2014/10/04(土) 11:40:48.79ID:UkDdVNoH仕様書がある。
http://msdn.microsoft.com/en-us/windows/hardware/gg463080.aspx
0292デフォルトの名無しさん
2014/10/04(土) 11:47:28.83ID:X8tclADNhttp://en.wikipedia.org/wiki/Design_of_the_FAT_file_system#VFAT
http://ja.wikipedia.org/wiki/File_Allocation_Table#VFAT
0293デフォルトの名無しさん
2014/10/04(土) 11:58:38.01ID:TW/R31j/なるほど
ありがとう
0294デフォルトの名無しさん
2014/10/04(土) 15:27:27.26ID:1xUkQZ/nこのテキストファイルにある文字コードを逆アセンブルすると、どんな感じになるか、宜しければ教えてください。
アセンブル言語かそれよりも読みやすい形式ではどうなるのかが気になります・・・
0295デフォルトの名無しさん
2014/10/04(土) 17:03:13.90ID:X8tclADNいったい何なんだ?
0296デフォルトの名無しさん
2014/10/04(土) 17:07:30.71ID:lwfJG00e0297デフォルトの名無しさん
2014/10/04(土) 17:19:02.69ID:VuaBAyqLおじいちゃんがそういうことをするから、
他の文字コード扱うようにしようとする若者が
苦しむことになるんだよ。
いつまでもSJIS固定の知識にしがみついてんじゃないよ。
0298デフォルトの名無しさん
2014/10/04(土) 17:59:22.47ID:X8tclADNごめんね、どうせ漢字コードをガラポンするんだったら、近世康熙字典等に典拠し仏典解釈にも耐え字喃をも抱合した東アジア文化圏を代表するコード体系にもって行きたかったんだが、外圧に負けてしまった
0299デフォルトの名無しさん
2014/10/04(土) 18:07:22.71ID:VR01Pkr60300デフォルトの名無しさん
2014/10/04(土) 18:45:20.93ID:qpaDPuoTいちいちUTF-32に直さないと何もできないと思ってるヘボも多いけど
0301デフォルトの名無しさん
2014/10/04(土) 19:18:22.45ID:Aq1dRHRh日本人が作るとTRONコードみたいなものにしかならない
0302デフォルトの名無しさん
2014/10/04(土) 19:36:35.69ID:1xUkQZ/nmugenってゲームのキャラクターに使われてるコードです。
どう言う内容が書かれているか解析されたら面白いかなと・・・
0303237
2014/10/04(土) 19:53:35.27ID:il6KvmrsWin32s用の情報になっちゃうのか…。
知りたかったのはc_932.nlsの構造なんだけど
とりあえず見てみる。ありがとう。
0304デフォルトの名無しさん
2014/10/04(土) 21:07:18.31ID:j10VjSV2スレ違いにも程がある
0305デフォルトの名無しさん
2014/10/04(土) 21:26:32.94ID:fOqpWE8pSJIS固定の知識ではないよ。
アルゴリズム見れば判るけど1バイト2バイト混在のエンコーディング汎用に使える。
0306デフォルトの名無しさん
2014/10/04(土) 21:43:56.32ID:X8tclADN0307デフォルトの名無しさん
2014/10/04(土) 21:44:27.50ID:fOqpWE8pUTF-8は先頭2bit見れば切れ目は簡単に判る。
UTF-8絡みでは先頭1byteから長さを求めるこのコードが気が利いてる。
inline uint32_t utf8_char_len(uint8_t byte) {
return(((0xE5000000 >> ((byte >> 3) & 0x1E)) & 3) + 1);
}
0308デフォルトの名無しさん
2014/10/04(土) 22:08:21.15ID:qpaDPuoTillseq対応できない、やり直し
0309デフォルトの名無しさん
2014/10/04(土) 23:52:30.72ID:Aq1dRHRhこのやり方いいな
0310デフォルトの名無しさん
2014/10/05(日) 02:42:24.51ID:dZJgRaX6先頭バイトの上位4ビットと定められているのだけれど
どうしてこう妄想の糞コードをまき散らすんだろうか
0311デフォルトの名無しさん
2014/10/05(日) 02:49:08.29ID:1vv2G9lMこういうことになるんだよな。正しくAPI使えよ。
0312デフォルトの名無しさん
2014/10/05(日) 03:02:25.25ID:RFQS974S>>311
UTF-8ぐらいは自前で切り分けられなきゃダメだろ、上のコードはさておき
0313デフォルトの名無しさん
2014/10/05(日) 03:08:26.65ID:1vv2G9lM老害は空気読まないし、ゆとりはコピペでおかしいコードを拾ってくるし、
頭の悪い奴にそういうことをさせてはいかん。
知ってる、できる、というのは確かに必要だけども、
そういうのは隠しておけ。
0314デフォルトの名無しさん
2014/10/05(日) 03:13:10.39ID:uXSW8JsIだから正しい結果にならないな。
0315デフォルトの名無しさん
2014/10/05(日) 03:36:10.03ID:RFQS974Sそこは合ってる。0xE5000000から2ビットずつ切り出してるから。
問題は5〜6バイトの対応と、FE、FFを不正扱いできないこと。
実際には冗長表現やサロゲートペアを弾いたりもしないといけないし
どうせ分岐するなら最初に < 0x80 で分岐した方がいい、と
特定の入力しかこないことがわかってるときにしか使えない競技用の最適化だな
0316デフォルトの名無しさん
2014/10/05(日) 03:49:15.52ID:ybvOIS0SUnicode規格のUTF-8は最長4バイトで
その長さの判定に不可欠なのが最初の4ビットな訳だが
何を言ってるんだ?
ついでにUTF-8の処理でなんでサロゲートペアが出てくるんだ
0317デフォルトの名無しさん
2014/10/05(日) 04:11:55.69ID:RFQS974S>>314で抜き出されてる式を見ろ、& 0x1e で「最初の4ビット」だろ
ついでに、長さを取って終わりじゃないだろ、必ず後続バイトの処理が入るだろ
そこでサロゲートペア相当の範囲を弾いておかないと、冗長表現同様の同じ文字の別ビットパターンになってしまうだろ
0318デフォルトの名無しさん
2014/10/05(日) 10:12:14.67ID:cc3yWH/A不正なデータの処理などする必要など無いね。
アホがヒューリスティックな判定を突破されてファビョってるだけだろ。
きとんとUnicodeのencoding schemeをencoding formに変換してから文字列処理しろ。
0319デフォルトの名無しさん
2014/10/05(日) 11:06:22.31ID:SJ37vndyどうせ変換するんだったら最初から UTF8 より処理が楽な UTF32 にするわ
0320デフォルトの名無しさん
2014/10/05(日) 11:12:14.57ID:bqkZ4fJcUTF8のまま処理するのはシフトJISで5Cが起こした問題を反省しない人
0321デフォルトの名無しさん
2014/10/05(日) 13:20:41.46ID:FZuSwsnO5C だけとは限りませんぜ。>>278
0322デフォルトの名無しさん
2014/10/05(日) 13:48:09.02ID:FtNXVQE/0323デフォルトの名無しさん
2014/10/05(日) 14:11:25.34ID:a6/ySe320324デフォルトの名無しさん
2014/10/05(日) 18:12:44.43ID:JBPweL8qビット配列が同じだからって勝手に仕様を推測しちゃいかん
0325デフォルトの名無しさん
2014/10/05(日) 20:53:08.85ID:RFQS974S0326デフォルトの名無しさん
2014/10/05(日) 21:27:55.58ID:XmSTRDePセキュリティ脆弱性をつつかれた325が何か申しております
0327デフォルトの名無しさん
2014/10/05(日) 23:59:54.62ID:OwPAT2u/0328デフォルトの名無しさん
2014/10/06(月) 00:30:52.87ID:lZkt3Im/0329デフォルトの名無しさん
2014/10/06(月) 00:39:14.84ID:Vb4yB39d0330デフォルトの名無しさん
2014/10/06(月) 14:18:04.56ID:sZCddYLR^^も存在するから^^と^^の見分け方はどうなるんだというのもあるようなw
0331デフォルトの名無しさん
2014/10/06(月) 16:57:50.00ID:6P/FUU8l"null"との見分けはどうなるんだというのもあるようなw
■ このスレッドは過去ログ倉庫に格納されています