プログラマーなら一度は煩わされたことのある文字コードについてのスレ。
UTF-8、Shift_JIS、JIS、EUC、Unicode、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/
文字コード総合スレ Part10 http://mevius.2ch.net/test/read.cgi/tech/1444822140/
文字コード総合スレ Part11 http://mevius.5ch.net/test/read.cgi/tech/1516629503/
探検
文字コード総合スレ Part12
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/12/17(月) 16:48:24.47ID:Pfqpaohb308デフォルトの名無しさん
2020/09/30(水) 11:03:16.10ID:h1wvHACb >>307
バグじゃなくて仕様だよ。予約されてるから。
バグじゃなくて仕様だよ。予約されてるから。
309デフォルトの名無しさん
2020/09/30(水) 11:04:41.69ID:h1wvHACb 制約事項として明記された不具合は仕様と呼んでいい。
310デフォルトの名無しさん
2020/10/02(金) 03:35:07.39ID:rHkefn4v311デフォルトの名無しさん
2020/10/02(金) 03:36:07.77ID:rHkefn4v 肌の色とか差別がなかったところに肌の色って概念を導入した結果結局偏りが生まれてるクソ仕様
312デフォルトの名無しさん
2020/10/02(金) 03:47:03.40ID:b+gARvx0 >>311
それはもう解決済みの問題です
それはもう解決済みの問題です
313デフォルトの名無しさん
2020/10/02(金) 11:31:57.29ID:vWjl5fwE こんにちは、初めまして。
今、個人的に amazon kindle端末用の電子書籍データを作るにあたって
仕様として JIS X 0213:2004 を保証すると書いてあるのでこの文字コードのユニコードのセットをまとめて
いわゆる JIS X 0213:2004 文字チェッカーのようなものを作っています。
Webページベースでユニコードのテキストを入力して、
使用してる文字が Kindle端末オーケーかどうかをチェックするプログラムです。
JavaScript(u16)用 と PHP(u8)用 で二種類のチェックプログラムを作ってます。
それで資料を集めて検証しているところなのですが、ちょっと判断に迷うコードがあったので、
他に聞ける場所も無いということで、ちょっとここで質問してみることにしました。
以下のコードなのですが、方や u16 で2文字(U+025B U+0300)、方や1文字(U+1F72) になってます。
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
(A) ɛ̀ 1-11-48 0x866f U+025B U+0300 グレーブアクセント付きEPSILON小文字
(A) ɛ́ 1-11-49 0x8670 U+025B U+0301 アキュートアクセント付きEPSILON小文字
https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u1f00.html#u1f72
(B) U+1F72 ὲ グレーブアクセント付きEPSILON小文字
(B) U+1F73 έ アキュートアクセント付きEPSILON小文字
この文字だけに限っての判断としますが、
どちらか一方が出た場合にどちらかに変換して正規化するとした場合、
正規化後は (A) と (B) のどちらが良いと思いますか?
気が向いたらレスを付けてくれたら嬉しいです、参考にしますので。
ちなみに、Windows10等でキーボード入力される 全角チルダ(U+FF5E,'~') は
JIS x0213:2004 コード規格の 波線(U+301C,'〜') に正規化することにしています。
(その他、似たような文字はなるべく一種類に正規化出来ればと考えています)
今、個人的に amazon kindle端末用の電子書籍データを作るにあたって
仕様として JIS X 0213:2004 を保証すると書いてあるのでこの文字コードのユニコードのセットをまとめて
いわゆる JIS X 0213:2004 文字チェッカーのようなものを作っています。
Webページベースでユニコードのテキストを入力して、
使用してる文字が Kindle端末オーケーかどうかをチェックするプログラムです。
JavaScript(u16)用 と PHP(u8)用 で二種類のチェックプログラムを作ってます。
それで資料を集めて検証しているところなのですが、ちょっと判断に迷うコードがあったので、
他に聞ける場所も無いということで、ちょっとここで質問してみることにしました。
以下のコードなのですが、方や u16 で2文字(U+025B U+0300)、方や1文字(U+1F72) になってます。
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
(A) ɛ̀ 1-11-48 0x866f U+025B U+0300 グレーブアクセント付きEPSILON小文字
(A) ɛ́ 1-11-49 0x8670 U+025B U+0301 アキュートアクセント付きEPSILON小文字
https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u1f00.html#u1f72
(B) U+1F72 ὲ グレーブアクセント付きEPSILON小文字
(B) U+1F73 έ アキュートアクセント付きEPSILON小文字
この文字だけに限っての判断としますが、
どちらか一方が出た場合にどちらかに変換して正規化するとした場合、
正規化後は (A) と (B) のどちらが良いと思いますか?
気が向いたらレスを付けてくれたら嬉しいです、参考にしますので。
ちなみに、Windows10等でキーボード入力される 全角チルダ(U+FF5E,'~') は
JIS x0213:2004 コード規格の 波線(U+301C,'〜') に正規化することにしています。
(その他、似たような文字はなるべく一種類に正規化出来ればと考えています)
314デフォルトの名無しさん
2020/10/02(金) 11:37:56.63ID:vEIDHK0R グレープってなんだって思ったらグラーブのことか
315デフォルトの名無しさん
2020/10/02(金) 11:59:54.40ID:ooD45Zz3 Ruby に、そのエンコードは無いの?
316デフォルトの名無しさん
2020/10/02(金) 12:00:25.80ID:vWjl5fwE どうぞ。
https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u1f00.html#u1f72
1F72 ὲ GREEK SMALL LETTER EPSILON WITH VARIA ≡03B5(ε) 0300(◌̀) グレーブアクセント付きEPSILON小文字 2B50
1F73 έ GREEK SMALL LETTER EPSILON WITH OXIA ≡03AD(έ) アキュートアクセント付きEPSILON小文字
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
` 1-1-14 0x814d U+0060 アクサングラーブ/グレーブアクセント グレイヴ・アクセント
https://ja.wikipedia.org/wiki/グレイヴ・アクセント
JIS X 0213の名称は、「アクサングラーブ, グレーブアクセント」
The grave accent ( ` ) (/ɡreɪv/ or /ɡrɑːv/)
https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u1f00.html#u1f72
1F72 ὲ GREEK SMALL LETTER EPSILON WITH VARIA ≡03B5(ε) 0300(◌̀) グレーブアクセント付きEPSILON小文字 2B50
1F73 έ GREEK SMALL LETTER EPSILON WITH OXIA ≡03AD(έ) アキュートアクセント付きEPSILON小文字
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
` 1-1-14 0x814d U+0060 アクサングラーブ/グレーブアクセント グレイヴ・アクセント
https://ja.wikipedia.org/wiki/グレイヴ・アクセント
JIS X 0213の名称は、「アクサングラーブ, グレーブアクセント」
The grave accent ( ` ) (/ɡreɪv/ or /ɡrɑːv/)
317デフォルトの名無しさん
2020/10/02(金) 14:38:35.67ID:vWjl5fwE なんとなく備忘録
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
\ 1-1-32 (JIS)2140 (SJIS)0x815f U+005c 逆斜線 バックスラッシュ
\ 1-1-79 (JIS)216f (SJIS)0x818f U+00a5 円記号 円記号
日本語環境だとどちらも円マークだけど、JISx0208 , JISx0213 だと U+00a5 に正規化すべきなのか・・・、
一応 JIS x0213:2004 規格だと、U+005c はバックスラッシュで表示されるらしいし?
自分とこで作る電子書籍は問答無用で全角円マークにするから検討すべき問題でもないのだけれど、
とりあえず日本語でしか使わないので U+005c → U+00a5 正規化コードを突っ込んどけばいいか。
というか、いい加減にカオスな状況が終わってると思ってチマチマ始めたというのに、
なんか微妙なところで微妙に決まってないというか、
mb_convert_encoding() で Unicode から JIS コードにしたいのに、
エラーも出さずにシラっと Unicode で返すのは辞めてほしかった・・・、
ちなみにこんなもので悩もうとか思ったのは、
kindle用電子書籍を作るにあたって第3水準や第4水準のつもりで使った漢字を
既存のWebサービスやツール類で 適性かどうかをチェック出来るものが無かったからなんですね。
まぁ、既存のツールがあったとしても他人が作ったそのツールの仕様を理解するのも面倒だって理由もありますが。
ちょっと気づいたんだけど、U+00a5 の方も普通に Windows のファイル名として使えるのね・・・、
見た目で違いを判別できないとか、まじに勘弁してほしい。
あと、他のサイトだけど、しらっと SJIS で6バイトのコードを表示するのも辞めてほしい・・・、
https://ja.wikipedia.org/wiki/JIS_X_0213非漢字一覧
\ 1-1-32 (JIS)2140 (SJIS)0x815f U+005c 逆斜線 バックスラッシュ
\ 1-1-79 (JIS)216f (SJIS)0x818f U+00a5 円記号 円記号
日本語環境だとどちらも円マークだけど、JISx0208 , JISx0213 だと U+00a5 に正規化すべきなのか・・・、
一応 JIS x0213:2004 規格だと、U+005c はバックスラッシュで表示されるらしいし?
自分とこで作る電子書籍は問答無用で全角円マークにするから検討すべき問題でもないのだけれど、
とりあえず日本語でしか使わないので U+005c → U+00a5 正規化コードを突っ込んどけばいいか。
というか、いい加減にカオスな状況が終わってると思ってチマチマ始めたというのに、
なんか微妙なところで微妙に決まってないというか、
mb_convert_encoding() で Unicode から JIS コードにしたいのに、
エラーも出さずにシラっと Unicode で返すのは辞めてほしかった・・・、
ちなみにこんなもので悩もうとか思ったのは、
kindle用電子書籍を作るにあたって第3水準や第4水準のつもりで使った漢字を
既存のWebサービスやツール類で 適性かどうかをチェック出来るものが無かったからなんですね。
まぁ、既存のツールがあったとしても他人が作ったそのツールの仕様を理解するのも面倒だって理由もありますが。
ちょっと気づいたんだけど、U+00a5 の方も普通に Windows のファイル名として使えるのね・・・、
見た目で違いを判別できないとか、まじに勘弁してほしい。
あと、他のサイトだけど、しらっと SJIS で6バイトのコードを表示するのも辞めてほしい・・・、
318デフォルトの名無しさん
2020/10/02(金) 15:25:55.64ID:rmc8/xO8 日本の PC の内臓フォントは JIS X 0201 だったので、SJIS の 0x5C は円記号ということで運用されていたのだけど
Windows 3.1 で Unicode 対応を入れる時に ASCII 互換じゃないとうまくいかないことに気付いて、
CP932 の 0x5C を「見かけは円記号に見えるけど、実際には逆射線ということにした。円記号に見えるのはフォントせいで心の目で見ると逆射線」ということにした。
そのせいで Windows の一部日本語フォントを使った場合のみ 0x5C と 0xA5 の両方が円記号で表示される。
解決法: (1)別のフォントに変える。(2)Windows を捨てる。
Windows 3.1 で Unicode 対応を入れる時に ASCII 互換じゃないとうまくいかないことに気付いて、
CP932 の 0x5C を「見かけは円記号に見えるけど、実際には逆射線ということにした。円記号に見えるのはフォントせいで心の目で見ると逆射線」ということにした。
そのせいで Windows の一部日本語フォントを使った場合のみ 0x5C と 0xA5 の両方が円記号で表示される。
解決法: (1)別のフォントに変える。(2)Windows を捨てる。
319デフォルトの名無しさん
2020/10/02(金) 15:54:09.42ID:rmc8/xO8 Unicode 的にはどっちでも良いのだけど JIS X 0213 的には 1-11-48,49 は 1F72,1F73 との対応を示しているので、そっちにしておくのが無難かな。
一文字にしておけば、結合文字に未対応の環境でも変にならずにすむし。
一文字にしておけば、結合文字に未対応の環境でも変にならずにすむし。
320デフォルトの名無しさん
2020/10/02(金) 16:07:25.61ID:gdIx8v5/ >>318
消火器と消化器は間違えんなよ。小火器も使う時あるからな。
消火器と消化器は間違えんなよ。小火器も使う時あるからな。
321デフォルトの名無しさん
2020/10/02(金) 17:58:09.59ID:rmc8/xO8 おう逆射線と逆斜線の変換ミスな。気付いてなかったわ。すまん。
322デフォルトの名無しさん
2020/10/02(金) 18:49:02.52ID:zXx3uGG2323デフォルトの名無しさん
2020/10/02(金) 18:54:47.21ID:vWjl5fwE324デフォルトの名無しさん
2020/10/02(金) 20:47:22.49ID:ErcYaiEt >>318
Shift_JISがJIS X 0201 Romanだから困るからCP932で超解釈したのはC言語の問題じゃなかったっけ?
Shift_JISで厳密に次のコードを解釈すると
#include <stdio.h>
int main(int argc, char argv[])
{
int a = 0x0077ffaa;
printf("%08x %08x\n", a, ~a);
return 0;
}
バックスラッシュ\nとチルダ〜ではなく円記号¥nとオーバーライン ̄だから、改行とビット反転にはならない
正しくはトライグラフを使って
#include <stdio.h>
int main(int argc, char argv[])
{
int a = 0x0077ffaa;
printf("%08x %08x??/n", a, ??-a);
return 0;
}
としないといけない
だけど誰もトライグラフなんて使っていないから、CP932は0x5cはグリフが¥なバックスラッシュという超解釈でごまかした
CP932では0x7eの意味はチルダでグリフも〜だからそっちはそのままでいい
チルダ関係もカオスだよね
『〜』と『〜』別な文字だけど区別できる見た目で表示されているほうがむしろおかしいんだっけ?
Shift_JISがJIS X 0201 Romanだから困るからCP932で超解釈したのはC言語の問題じゃなかったっけ?
Shift_JISで厳密に次のコードを解釈すると
#include <stdio.h>
int main(int argc, char argv[])
{
int a = 0x0077ffaa;
printf("%08x %08x\n", a, ~a);
return 0;
}
バックスラッシュ\nとチルダ〜ではなく円記号¥nとオーバーライン ̄だから、改行とビット反転にはならない
正しくはトライグラフを使って
#include <stdio.h>
int main(int argc, char argv[])
{
int a = 0x0077ffaa;
printf("%08x %08x??/n", a, ??-a);
return 0;
}
としないといけない
だけど誰もトライグラフなんて使っていないから、CP932は0x5cはグリフが¥なバックスラッシュという超解釈でごまかした
CP932では0x7eの意味はチルダでグリフも〜だからそっちはそのままでいい
チルダ関係もカオスだよね
『〜』と『〜』別な文字だけど区別できる見た目で表示されているほうがむしろおかしいんだっけ?
325デフォルトの名無しさん
2020/10/02(金) 21:00:45.39ID:Va1PciQI PDF に謎の漢字が含まれるとき
https://gist.github.com/xl1/940d653451fd96a06618a6df08d5df84
https://gist.github.com/xl1/940d653451fd96a06618a6df08d5df84
326デフォルトの名無しさん
2020/10/02(金) 21:17:20.27ID:zXx3uGG2 ピントはずれ。
シフトJISできる前からJIS C 6220のソースをコンパイラに食わせてた。
コンパイラは0x5cにASCIIのバックスラッシュ以外の意味知らないし、そう扱って問題は出ない。
シフトJISとコンパイラで問題がでるのは文字列リテラル中のダメ字。
シフトJISできる前からJIS C 6220のソースをコンパイラに食わせてた。
コンパイラは0x5cにASCIIのバックスラッシュ以外の意味知らないし、そう扱って問題は出ない。
シフトJISとコンパイラで問題がでるのは文字列リテラル中のダメ字。
327デフォルトの名無しさん
2020/10/02(金) 21:57:12.83ID:ErcYaiEt >>326
> コンパイラは0x5cにASCIIのバックスラッシュ以外の意味知らないし、そう扱って問題は出ない。
正しく国際化されているコンパイラでは問題を起こす
実際2000年前後の国際化対応gccでShift_JISで書かれたコードで問題が起きたことがある
(ダメ字を問題なく処理できるのに¥nが改行と解釈されない)
日本語環境ではみんな雑に捉えて¥と\を区別していなかったのは事実だけど、トライグラフが
ANSI Cで導入された以降Shift_JISで書かれたコードは正しく解釈すると規格に反する状態であった
実際にトライグラフをまともに使っていたのはデンマークだっけ?
> コンパイラは0x5cにASCIIのバックスラッシュ以外の意味知らないし、そう扱って問題は出ない。
正しく国際化されているコンパイラでは問題を起こす
実際2000年前後の国際化対応gccでShift_JISで書かれたコードで問題が起きたことがある
(ダメ字を問題なく処理できるのに¥nが改行と解釈されない)
日本語環境ではみんな雑に捉えて¥と\を区別していなかったのは事実だけど、トライグラフが
ANSI Cで導入された以降Shift_JISで書かれたコードは正しく解釈すると規格に反する状態であった
実際にトライグラフをまともに使っていたのはデンマークだっけ?
328デフォルトの名無しさん
2020/10/02(金) 22:12:09.12ID:rmc8/xO8 厳密にいうと C言語のソースは基本文字集合と呼ばれる 1バイト文字を含まなければならない。それには \ のみで ¥ は存在していない。
JIS の C言語の規格ではソースに JIS X 0201 を使用する場合は \ と ¥ を置き換えることになっている。
1バイト文字の解釈は必ず基本文字集合と同じでなければならない。
多バイト文字やシフト状態を持つ文字でナル以外の文字に 0x00 のバイトが来るのは禁止。
シフト状態を持つ場合には初期シフト状態に基本文字集合を持たなければならない。
上記を満たせば多バイト文字の解釈は実装依存。
JIS の C言語の規格ではソースに JIS X 0201 を使用する場合は \ と ¥ を置き換えることになっている。
1バイト文字の解釈は必ず基本文字集合と同じでなければならない。
多バイト文字やシフト状態を持つ文字でナル以外の文字に 0x00 のバイトが来るのは禁止。
シフト状態を持つ場合には初期シフト状態に基本文字集合を持たなければならない。
上記を満たせば多バイト文字の解釈は実装依存。
329デフォルトの名無しさん
2020/10/02(金) 22:13:24.20ID:ErcYaiEt330デフォルトの名無しさん
2020/10/03(土) 00:32:32.33ID:5QIBKgVv 文字コードを意識せずにプログラミングが出来るようになる革命はまだですか?
331デフォルトの名無しさん
2020/10/03(土) 00:59:47.45ID:g9HEPfwG 革命とは過去の遺物を捨て去ることだよ。
332デフォルトの名無しさん
2020/10/03(土) 09:47:26.20ID:8tX55Lof >>328
> JIS の C言語の規格ではソースに JIS X 0201 を使用する場合は \ と ¥ を置き換えることになっている。
ANSI CやISO 9899にそんな規定はない
JISX3010で参考として追記された箇所であってローカル規格
そもそも¥を\の代わりに使っていいなら何のためにトライグラフを国際規格に入れたの?
¥を\と解釈するJISX3010は国際規格ISO 646に反しCP932と同じ超解釈の類
gccの振る舞いが国際規格に準拠する正しい動作
> JIS の C言語の規格ではソースに JIS X 0201 を使用する場合は \ と ¥ を置き換えることになっている。
ANSI CやISO 9899にそんな規定はない
JISX3010で参考として追記された箇所であってローカル規格
そもそも¥を\の代わりに使っていいなら何のためにトライグラフを国際規格に入れたの?
¥を\と解釈するJISX3010は国際規格ISO 646に反しCP932と同じ超解釈の類
gccの振る舞いが国際規格に準拠する正しい動作
333デフォルトの名無しさん
2020/10/03(土) 10:32:33.14ID:1CYfZXkg ideone.com とかは
スマホから試すときとPCから試すときで
\と\の扱いが違って動きが可笑しくなることがある
unicode になって区別が明確になったことによる弊害のひとつ
スマホから試すときとPCから試すときで
\と\の扱いが違って動きが可笑しくなることがある
unicode になって区別が明確になったことによる弊害のひとつ
334デフォルトの名無しさん
2020/10/03(土) 14:19:07.86ID:asw2Nmie >>322
だから JIS の C言語の規格で、なおかつ入力に JIS X 0201 を使う時、限定と書いてるじゃん。
コンパイラがロカール規格に対応していたら使って良いんだよ。
gcc がローカル規格に対応する義務はないが、ちなみに gcc には LANG=C-SJIS という設定があってな。
だから JIS の C言語の規格で、なおかつ入力に JIS X 0201 を使う時、限定と書いてるじゃん。
コンパイラがロカール規格に対応していたら使って良いんだよ。
gcc がローカル規格に対応する義務はないが、ちなみに gcc には LANG=C-SJIS という設定があってな。
335デフォルトの名無しさん
2020/10/03(土) 14:23:10.98ID:asw2Nmie アンカミス。 322 → 332
336デフォルトの名無しさん
2020/10/03(土) 14:44:31.16ID:y5FkQ2yd もちつけ
337デフォルトの名無しさん
2020/10/05(月) 00:37:11.64ID:aYBNZcXd >>323
どうなんだろうね。
確かにユニコード的には例えばNFDにしたときのベースの文字が正解かと。
一方 U+025X はIPAのブロックで、要は発音記号... ということは、文脈的に発音記号
として使われているならこっちだったりするのかも?
どうなんだろうね。
確かにユニコード的には例えばNFDにしたときのベースの文字が正解かと。
一方 U+025X はIPAのブロックで、要は発音記号... ということは、文脈的に発音記号
として使われているならこっちだったりするのかも?
338デフォルトの名無しさん
2020/10/08(木) 10:57:17.71ID:tD965ZiH Rubyをやってるんだけど、分からないところあるから教えてほしいです…
クラスメソッド、インスタンスメソッド、インスタンス変数あたりの意味がさっぱりで…
クラスメソッド、インスタンスメソッド、インスタンス変数あたりの意味がさっぱりで…
339デフォルトの名無しさん
2020/10/08(木) 11:08:48.28ID:Riy1MZEi 説明読んでも意味が判らない間は無理に使う必要は無い
君にはまだ早いってこと
君にはまだ早いってこと
340デフォルトの名無しさん
2020/10/08(木) 11:25:58.08ID:e+h9pet/341デフォルトの名無しさん
2020/10/08(木) 11:34:16.59ID:SMtYwKCf 個人的に普段は ruby は使わないんだけど、文字コードの実装は perl や python や java に比べると ruby は筋が良いんだよな。(個人の感想です)
342デフォルトの名無しさん
2020/10/08(木) 21:30:15.81ID:24ftK7/Z343デフォルトの名無しさん
2020/10/09(金) 09:29:33.69ID:81dxs4Bx ドキュメントを見ると結構マイナー(?)なエンコーディングもあるっぽいね。
ケータイ各社の絵文字入りSJISとかもあるんだ。
https://en.wikibooks.org/wiki/Ruby_Programming/Encoding
ケータイ各社の絵文字入りSJISとかもあるんだ。
https://en.wikibooks.org/wiki/Ruby_Programming/Encoding
344デフォルトの名無しさん
2020/10/09(金) 11:37:23.24ID:5kgt8bw0 >>342
Python は内部格納文字コードに unicode を固定で使用していて、unicode に変換できない文字は使えないし、
unicode に変換した場合に unify などで消える情報は保持できないけど、
ruby は特定の文字コードを仮定した内部コードを持たないため、programing や library の実装でどうにでもなる。
初心者には Python の実装がわかりやすいけど、文字コードそのものをいじりたいレベルになると嵌ることがある。
概要は ruby m17n とかで、検索してい関連しそうな記事を読んで見ると良いかと。
Python は内部格納文字コードに unicode を固定で使用していて、unicode に変換できない文字は使えないし、
unicode に変換した場合に unify などで消える情報は保持できないけど、
ruby は特定の文字コードを仮定した内部コードを持たないため、programing や library の実装でどうにでもなる。
初心者には Python の実装がわかりやすいけど、文字コードそのものをいじりたいレベルになると嵌ることがある。
概要は ruby m17n とかで、検索してい関連しそうな記事を読んで見ると良いかと。
345デフォルトの名無しさん
2020/10/09(金) 11:44:47.75ID:vl+UDRkB うそはいかんよ
python は binary も自由に扱える
python は binary も自由に扱える
346デフォルトの名無しさん
2020/10/09(金) 12:08:49.92ID:8qJEmYsV347デフォルトの名無しさん
2020/10/09(金) 12:37:20.08ID:vl+UDRkB ruby は文字じゃないものの文字列長をどうやって計算してるのですか?
348デフォルトの名無しさん
2020/10/09(金) 12:38:41.36ID:EjYkYVIx >>347
文字じゃないものの文字列長なんて計算できるわけ無いでしょ(笑)
だからいろんな文字コードを文字として認識できるようになってる
それに対しPythonはバイナリだから文字列の長さが計算できない(大爆笑)
文字じゃないものの文字列長なんて計算できるわけ無いでしょ(笑)
だからいろんな文字コードを文字として認識できるようになってる
それに対しPythonはバイナリだから文字列の長さが計算できない(大爆笑)
349デフォルトの名無しさん
2020/10/09(金) 12:44:19.84ID:vl+UDRkB うそはいかんよ
馬鹿丸出しだから煽りは止めた方が良い
馬鹿丸出しだから煽りは止めた方が良い
350342
2020/10/09(金) 12:45:15.41ID:hk0qQeVw351デフォルトの名無しさん
2020/10/09(金) 20:40:06.43ID:phj7/P3X 漢字のようで漢字でないUnicodeの「康熙部首」と「CJK部首補助」
https://techracho.bpsinc.jp/hachi8833/2020_10_07/95257
https://techracho.bpsinc.jp/hachi8833/2020_10_07/95257
352デフォルトの名無しさん
2020/10/10(土) 09:48:22.75ID:mP3lsNpF Unicode 3.0って1999年だろうに
353デフォルトの名無しさん
2020/10/10(土) 22:38:12.17ID:vUhDQSk6 nuby からの流れで... nkf って今でもメンテされてるようで。
ネットニュースから shar で入手したのはいつの日か。
ネットニュースから shar で入手したのはいつの日か。
354デフォルトの名無しさん
2020/10/10(土) 23:59:49.31ID:33g/v1Rs Unicodeの文字の情報を見たいと思ったら
どれを参照すればいいの?
どれを参照すればいいの?
355デフォルトの名無しさん
2020/10/11(日) 01:36:12.47ID:PkCT08SK 情報って?
356デフォルトの名無しさん
2020/10/11(日) 01:53:31.67ID:QQ2vPcGT Aという文字の小文字はaであるとか
357デフォルトの名無しさん
2020/10/11(日) 02:42:43.61ID:Y6xs0w7V358デフォルトの名無しさん
2020/10/11(日) 06:59:02.20ID:QQ2vPcGT >>357
それらの情報を全て文字ごとに知りたいんだよ
それらの情報を全て文字ごとに知りたいんだよ
359デフォルトの名無しさん
2020/10/11(日) 07:21:36.62ID:X3noy0YM >>358
"Find chart by hex code:" ってとこにコードポイントを入れてみようw
"Find chart by hex code:" ってとこにコードポイントを入れてみようw
360デフォルトの名無しさん
2020/10/11(日) 07:33:27.40ID:QQ2vPcGT >>359
情報が全く足りません
情報が全く足りません
361デフォルトの名無しさん
2020/10/11(日) 07:34:05.33ID:QQ2vPcGT Aは大文字であり、対応する小文字はaである
という情報はどこに書かれているのでしょうか?
という情報はどこに書かれているのでしょうか?
362デフォルトの名無しさん
2020/10/11(日) 08:36:01.64ID:9KwtZAoB https://unicode.org/charts/PDF/U0000.pdf
これの
LATIN CAPITAL LETTER A
LATIN SMALL LETTER A
区別じゃ足りないかい?
これの
LATIN CAPITAL LETTER A
LATIN SMALL LETTER A
区別じゃ足りないかい?
363デフォルトの名無しさん
2020/10/11(日) 08:49:30.81ID:biiSH/I3 > 0041 A LATIN CAPITAL LETTER A
少なくとも「Aは大文字」は明記されてるけど??
> 0061 a LATIN SMALL LETTER A
小文字aの定義の記述から対応する文字も分かると思うんだけど
それじゃわからないということであれば、
「大文字Aに対応する小文字はaである」みたいなことは
Unicodeの仕様書じゃなくて英語圏の小学生or幼稚園児向け教科書とかに書かれてるんじゃないかね
少なくとも「Aは大文字」は明記されてるけど??
> 0061 a LATIN SMALL LETTER A
小文字aの定義の記述から対応する文字も分かると思うんだけど
それじゃわからないということであれば、
「大文字Aに対応する小文字はaである」みたいなことは
Unicodeの仕様書じゃなくて英語圏の小学生or幼稚園児向け教科書とかに書かれてるんじゃないかね
364デフォルトの名無しさん
2020/10/11(日) 09:48:07.57ID:EIUTbwb3365デフォルトの名無しさん
2020/10/11(日) 10:11:43.02ID:X3noy0YM >>364
使えるかどうかは能力の問題ですよねw
使えるかどうかは能力の問題ですよねw
366デフォルトの名無しさん
2020/10/11(日) 10:24:25.43ID:ieSx8e01367デフォルトの名無しさん
2020/10/11(日) 12:14:43.64ID:kZXFoyze ほう
3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;;
3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
368デフォルトの名無しさん
2020/10/11(日) 12:26:01.00ID:j5pFI3Yh あ、あと文字の幅も知りたい
369デフォルトの名無しさん
2020/10/11(日) 12:27:09.66ID:j5pFI3Yh Aに対応する小文字がaなら
あに対応するカタカナはアという情報があっても
良いと思うのだがあるのか?
あに対応するカタカナはアという情報があっても
良いと思うのだがあるのか?
370デフォルトの名無しさん
2020/10/11(日) 12:33:22.48ID:kZXFoyze >>369
曾礼多
曾礼多
371デフォルトの名無しさん
2020/10/11(日) 12:36:42.03ID:j5pFI3Yh >>370
嫁無い
嫁無い
372デフォルトの名無しさん
2020/10/11(日) 13:23:05.62ID:a5ebPbEF 1,2,3
373デフォルトの名無しさん
2020/10/11(日) 13:26:32.41ID:a5ebPbEF 3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;;
30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
ないようだ
30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;;
ないようだ
374デフォルトの名無しさん
2020/10/11(日) 18:56:47.77ID:lNYgVXzm いい加減自分で調べられるだろ... 釣りか
Unicodeの他のデータとかUnicodeに関するAPIとかにある。
そうやって、全世界が「あーUnicodeでいいね」ってなるように
Unicodeの世界戦略は着々と進んでいるのであった。
Unicodeの他のデータとかUnicodeに関するAPIとかにある。
そうやって、全世界が「あーUnicodeでいいね」ってなるように
Unicodeの世界戦略は着々と進んでいるのであった。
375デフォルトの名無しさん
2020/10/11(日) 20:41:30.45ID:EIUTbwb3 日本語のマップくらいは自分で作ればいいんじゃね?
https://unicode.org/charts/PDF/U1B000.pdf
https://unicode.org/charts/PDF/U1B000.pdf
376デフォルトの名無しさん
2020/10/11(日) 21:37:26.96ID:wm510+AL 変体仮名も収録されてるんだな
377デフォルトの名無しさん
2020/10/13(火) 00:47:23.21ID:tEy/04zZ あをアに対応させるのはtransliterationのカテゴリーらしい、Unicode的には。
日本語だと翻字というのかー。
日本語だと翻字というのかー。
378デフォルトの名無しさん
2020/10/13(火) 06:17:14.44ID:RnL4UaYd 漢字の読み方(複数)もUnicodeで定義されるべきではないのかな?
379デフォルトの名無しさん
2020/10/13(火) 09:57:18.23ID:FpFGKRx+ 棚
380デフォルトの名無しさん
2020/10/13(火) 13:54:08.89ID:8ughZvwQ Unicode は文字コードであって漢和辞典ではないし、読みとか何の役にも建たないw
381デフォルトの名無しさん
2020/10/16(金) 00:51:17.29ID:zvezW4n7 >>361
大文字小文字を区別しない検索を行うためのデータという意味ならこれ
http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
ある文字が大文字または小文字に該当するかを知りたいなら>>364のデータの
3番目のフィールドを見る。Luなら大文字でLlなら小文字
大文字小文字を区別しない検索を行うためのデータという意味ならこれ
http://www.unicode.org/Public/UNIDATA/CaseFolding.txt
ある文字が大文字または小文字に該当するかを知りたいなら>>364のデータの
3番目のフィールドを見る。Luなら大文字でLlなら小文字
382デフォルトの名無しさん
2020/10/20(火) 08:39:00.75ID:iDoXrFT4 rubyを勉強中の超初心者なのですが、時代遅れだ!みたいな記事をちらほら見かえます。
言語変えた方がいいのでしょうか…?
言語変えた方がいいのでしょうか…?
383デフォルトの名無しさん
2020/10/20(火) 10:25:40.98ID:xAfCoP/O なぜ、ここで、その質問を?
文字コード的には変えるほど意味はない気がする。(むしろ ruby が便利)
複数の言語が使えた方が便利なので、色々試すことはおすすめ。
文字コード的には変えるほど意味はない気がする。(むしろ ruby が便利)
複数の言語が使えた方が便利なので、色々試すことはおすすめ。
384デフォルトの名無しさん
2020/10/20(火) 10:30:11.60ID:pHiz9StD Yes, you can.
385デフォルトの名無しさん
2020/10/20(火) 16:20:38.97ID:Nlf6zVNG はい、あなたは管です。
386デフォルトの名無しさん
2020/10/24(土) 21:01:49.65ID:ehxRee/D いいえ、私は管(くだ)です
387デフォルトの名無しさん
2020/10/25(日) 01:00:40.73ID:+b3TKvfL いいえ、私は菅です。
388デフォルトの名無しさん
2020/12/07(月) 15:52:31.12ID:BlHR3DgB 櫻の絵文字🌸がPCやiPhoneだと花びら5枚なのに
Androidだと4枚ω
Androidだと4枚ω
389デフォルトの名無しさん
2020/12/07(月) 16:34:11.79ID:TmqbbT66 >>388
また友達に騙されちゃったんだね…
また友達に騙されちゃったんだね…
390デフォルトの名無しさん
2020/12/07(月) 21:30:49.12ID:8FTbf1dJ utf8でshiftjisで言う
iskanji()
iskanji2()
ishira()
iskata()
みたいなイディオム教えてください
iskanji()
iskanji2()
ishira()
iskata()
みたいなイディオム教えてください
391デフォルトの名無しさん
2020/12/08(火) 11:51:17.55ID:3Lge4PBr392デフォルトの名無しさん
2020/12/08(火) 12:25:05.31ID:no2frcgf >>391
shiftjisは扱わないのでutf8での方法を教えてください
shiftjisは扱わないのでutf8での方法を教えてください
393デフォルトの名無しさん
2020/12/08(火) 17:31:43.20ID:/pT3aml4394デフォルトの名無しさん
2020/12/08(火) 18:36:17.22ID:E4wQPgos 長音(ー)とかの扱いがめんどくさい
395デフォルトの名無しさん
2020/12/09(水) 06:33:19.08ID:Hs7wcc9u ちょっと疑問に思ったのだけど、
utf8 の iskanji を作るとしたら、繁体字とかも含めますか?
それとも今は JISx0213:2004(11233文字) だけ?
それともこれの次の標準化規格になるものってありましたっけ?
utf8 の iskanji を作るとしたら、繁体字とかも含めますか?
それとも今は JISx0213:2004(11233文字) だけ?
それともこれの次の標準化規格になるものってありましたっけ?
396デフォルトの名無しさん
2020/12/09(水) 06:43:54.04ID:Hs7wcc9u ishankana() みたいなもの、javascript 版
if( /^[アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚・]/.test('ア') )
{
console.log( '半角カタカナです');
}
if( /^[アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」゙゚・]/.test('ア') )
{
console.log( '半角カタカナです');
}
397デフォルトの名無しさん
2020/12/09(水) 07:34:03.35ID:qbXHpF4v そのiskanjiとやらであなたが何を判定したいか次第だと思うんだけど・・
サロゲートペアの漢字とかも気にしなきゃだめだろうねえ
サロゲートペアの漢字とかも気にしなきゃだめだろうねえ
398デフォルトの名無しさん
2020/12/09(水) 08:14:17.98ID:TKgHvdMy >>396
半角カナは後ろの方の文字コードでかたまってるから簡単じゃろ。
漢字とか結構カオスでテーブル作ったほうが良さそうだね。
必要文字コード列挙してバイナリサーチするアルゴリズムがええのかな?
厳格でなくていいなら半角カナみたいに文字コードテーブルみて
ざっくり判定でも割と行けるとは思うけど。
半角カナは後ろの方の文字コードでかたまってるから簡単じゃろ。
漢字とか結構カオスでテーブル作ったほうが良さそうだね。
必要文字コード列挙してバイナリサーチするアルゴリズムがええのかな?
厳格でなくていいなら半角カナみたいに文字コードテーブルみて
ざっくり判定でも割と行けるとは思うけど。
399デフォルトの名無しさん
2020/12/09(水) 09:06:33.04ID:Hs7wcc9u そういえば前に、amazon kindle端末用の電子書籍データ云々でここに書きこんだ記憶が、
と思い当って見直してみたら2か月前でした・・・、
私の方は KDP の仕様にあってるかどうかをチェックするのが目的だったのですが、
確かにカオスでしたね。ちなみに半角カナのコードを出しておいてあれなのですが、
JISx0213 規格的には半角カナは含まれてないっぽいです(x0208も同様です)。
チェック用のプログラムは結局普通の配列に規格の文字を全部入れておいて、
そこにあれば OK なければ NG という感じになりました。
サロゲートペアの扱いも面倒だったし。
あ、今気づいたけれど、JISx0213 的には全角英数記号ってもしかして NG なのでは?
いやでも wiki のページでは SJISコードは全角になってるし・・・、
と思い当って見直してみたら2か月前でした・・・、
私の方は KDP の仕様にあってるかどうかをチェックするのが目的だったのですが、
確かにカオスでしたね。ちなみに半角カナのコードを出しておいてあれなのですが、
JISx0213 規格的には半角カナは含まれてないっぽいです(x0208も同様です)。
チェック用のプログラムは結局普通の配列に規格の文字を全部入れておいて、
そこにあれば OK なければ NG という感じになりました。
サロゲートペアの扱いも面倒だったし。
あ、今気づいたけれど、JISx0213 的には全角英数記号ってもしかして NG なのでは?
いやでも wiki のページでは SJISコードは全角になってるし・・・、
400デフォルトの名無しさん
2020/12/09(水) 09:18:54.21ID:bCzZQrOf ライブラリ内ではユニコードスカラー値についてのみ取り扱うと良いと思います。
401デフォルトの名無しさん
2020/12/09(水) 13:23:38.64ID:y7KEYUhD Ruby の古いNKF を使うと、片仮名・平仮名の変換もできるけど、
片仮名・平仮名を判定するメソッドはない
たぶん、NKF の内部では、そういう関数があるのだろけど、公開されていないのかも
module NKF
https://docs.ruby-lang.org/ja/latest/class/NKF.html
require 'nkf'
p NKF.nkf( '-m0 -h3 -w', 'あイ' )
#=> "アい"
片仮名・平仮名を判定するメソッドはない
たぶん、NKF の内部では、そういう関数があるのだろけど、公開されていないのかも
module NKF
https://docs.ruby-lang.org/ja/latest/class/NKF.html
require 'nkf'
p NKF.nkf( '-m0 -h3 -w', 'あイ' )
#=> "アい"
402デフォルトの名無しさん
2020/12/09(水) 13:25:03.81ID:rIU0lDlE オプションそのまま文字列で渡すとか
ダッセェインターフェースだな
手抜きにも程がある
ダッセェインターフェースだな
手抜きにも程がある
403401
2020/12/09(水) 14:41:10.37ID:y7KEYUhD Ruby の正規表現・鬼雲で判別できた
re_hira = /\p{hiragana}{1}/ # 平仮名
re_kata = /\p{katakana}{1}/ # カタカナ
str = '愛あいカキうクx'
str.each_char do |ch|
ch.match( re_hira ){ |md| puts "平仮名 : #{ md[ 0 ] }" }
ch.match( re_kata ){ |md| puts "カタカナ : #{ md[ 0 ] }" }
end
出力
平仮名 : あ
平仮名 : い
カタカナ : カ
カタカナ : キ
平仮名 : う
カタカナ : ク
re_hira = /\p{hiragana}{1}/ # 平仮名
re_kata = /\p{katakana}{1}/ # カタカナ
str = '愛あいカキうクx'
str.each_char do |ch|
ch.match( re_hira ){ |md| puts "平仮名 : #{ md[ 0 ] }" }
ch.match( re_kata ){ |md| puts "カタカナ : #{ md[ 0 ] }" }
end
出力
平仮名 : あ
平仮名 : い
カタカナ : カ
カタカナ : キ
平仮名 : う
カタカナ : ク
404デフォルトの名無しさん
2020/12/09(水) 15:27:54.98ID:tBDPYy0r >>402
tcl/tk
tcl/tk
405デフォルトの名無しさん
2020/12/09(水) 16:19:55.89ID:H89RJ3R9 こゝろ
406401
2020/12/09(水) 17:51:11.38ID:y7KEYUhD >>403
を修正
Ruby の正規表現・鬼雲で、平仮名・カタカナ・漢字を判別した
re_hira = /\p{Hiragana}{1}/ # 平仮名
re_kata = /\p{Katakana}{1}/ # カタカナ
re_han = /\p{Han}{1}/ # 漢字
str = 'Aあい善悪カキ愛うクx'
p str.encoding #=> <Encoding:UTF-8>
str.each_char do |ch| # 1文字ずつ処理する
ch.match( re_hira ){ |md| puts "平仮名 : #{ md[ 0 ] }" }
ch.match( re_kata ){ |md| puts "カタカナ : #{ md[ 0 ] }" }
ch.match( re_han ){ |md| puts "漢字 : #{ md[ 0 ] }" }
end
出力
平仮名 : あ
平仮名 : い
漢字 : 善
漢字 : 悪
カタカナ : カ
カタカナ : キ
漢字 : 愛
平仮名 : う
カタカナ : ク
を修正
Ruby の正規表現・鬼雲で、平仮名・カタカナ・漢字を判別した
re_hira = /\p{Hiragana}{1}/ # 平仮名
re_kata = /\p{Katakana}{1}/ # カタカナ
re_han = /\p{Han}{1}/ # 漢字
str = 'Aあい善悪カキ愛うクx'
p str.encoding #=> <Encoding:UTF-8>
str.each_char do |ch| # 1文字ずつ処理する
ch.match( re_hira ){ |md| puts "平仮名 : #{ md[ 0 ] }" }
ch.match( re_kata ){ |md| puts "カタカナ : #{ md[ 0 ] }" }
ch.match( re_han ){ |md| puts "漢字 : #{ md[ 0 ] }" }
end
出力
平仮名 : あ
平仮名 : い
漢字 : 善
漢字 : 悪
カタカナ : カ
カタカナ : キ
漢字 : 愛
平仮名 : う
カタカナ : ク
407デフォルトの名無しさん
2020/12/09(水) 18:21:03.27ID:L/x3uoyo C++かC#でお願いします
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【朗報】日銀植田総裁「高市さんからの要望は特になかった」 [519511584]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 高市早苗政権「経済的威圧をしてくる国はリスク」 トランプぴょんぴょん政権さん…… [175344491]
