22:04:09
icon

うーん、なんとなくだけどktermで使え、という気がするんだよな。あるいはkon。fbtermはds/fsのエントリ無し。

ktermのUTF-8版とか、あるはずだと思うんだけど普及(?)してるのかなあ。

21:51:29
icon

/etc/termcap、
xterm+sl|access X title line and icon name:\
:hs:\
:ds=\E]0;\007:fs=^G:ts=\E]0;:TS=\E]0;:
なんてのがあるくらいなのでおそらくデフォルトのxtermはステータスライン(ds/fs)は非対応。ktermはds/fs装備済なのでってことで。

20:18:46
icon

ふーむ、buffer modeにおけるカーソル/BSの挙動が全般的に怪しげ、という理解。

18:54:36
icon

GoogleブックスのLinux日本語環境、xclipboardのスクリーンショットの中にもkanjihandの名前が出てるんだけど(ってGoogleさんそこ認識するんですか…!) books.google.co.jp/books?id=0u
当時の日本語環境の歴史を知る上で、この本を押さえておくべきなんだろうか。

18:50:57
icon

BSD256倍本買っといて正解だったかも。KanjiHandとかWorld21なる、日本語表示環境があることを知ることができたから。とはいえ、ぐぐったところで
x68000.q-e-d.net/~68user/unix/
x68000.q-e-d.net/~68user/unix/
ukai.jp/Articles/1993/sd-pc98u
その存在があったことくらいしか知ることはできないようだ。

Web site image
読み方:KanjiHand: UNIX/Linuxの部屋
Web site image
読み方:World21: UNIX/Linuxの部屋
16:11:28
icon

「神奈川県のアレ」って何を指してるんだろう。なんか色々ありすぎて…

13:16:50
icon

b.の採用もなくはないか…4byte目までデコードしたけどそこで打ち切り、次から表示ね、という動きになるなら。

12:55:07
icon

問題は不正なコードを食らった場合の処理なんだけど、どうすれば良いんだろう。6byteで1文字を構成するとして…4byte目が不正だったら…

a. 1~3byte目を棄却して4byte目から吐き出す
b. 1~4byte目を棄却して5byte目から吐き出す
c. 6byte全部を棄却する
d. 6byteを丸ごと吐き出す

※棄却した場合は〓とか表示して異常があったことを示す

のどれかにはなりそうなんだけど。

(a.は4byte目のデータを信用できる場合、b.は信用できない場合…おそらく多少信用できないデータでもなんか吐いといた方が分るだろうという判断で、b.を採用するケースは低い気がする)

12:45:20
icon

やっぱこの対応が自然ですよねえ。
「4バイト以上の文字は現状のTera Termでは表示できないが、デコードだけでも正しく行うべき。」(2009/6/18)
ja.osdn.net/projects/ttssh2/ti

12:43:59
icon

Oracle寄りだとCESU-8の絡みもあって、UTF-8は6byteでーすと書くしかないんだろうか。
文字化けについて (2023.10.17) reqtc.com/column/post-11.html

とはいえ、自分のこのポストに対して「CESU-8とUTF-8は違う!💢」と石が飛んできそうだ。
wdic.org/w/WDIC/CESU-8
unicode.org/reports/tr26/tr26-

Web site image
文字化けについて| 技術ブログ
CESU-8 ‐ 通信用語の基礎知識
UTR #26: Compatibility Encoding Scheme for UTF-16: 8-Bit (CESU-8)
12:39:47
icon

SIMD命令を用いるUTF-8文字列デコード処理の高速化(情報処理学会論文誌 プログラミング Vol.1 No.2 Sep 2008) cir.nii.ac.jp/crid/10505642878
ベクタ演算で高速化できるのは良いけど、不正なコード食らわせた場合にどういう動きをするのかは気になるところ。予めクリーニングしてからデコードさせるのかなあ(だとしたらクリーニングのコストはどうなる…)?

Web site image
SIMD命令を用いるUTF-8文字列デコード処理の高速化 | CiNii Research
12:35:53
icon

日立の(何かの製品の)UTF-8変換だと、未定義というか不正な文字コードに対しては半角スペースなり#(全角の#)なりを吐き出せるようになってると。 itpfdoc.hitachi.co.jp/manuals/

2.2.3 環境変数の設定 : HiRDB Dataextractor Version 10
12:28:21
icon

不正なコードは変換せずスキップというのは…そのまま吐き出す、ってことで良いんだろうか。 itpfdoc.hitachi.co.jp/manuals/

抽出したデータの文字コード変換
11:55:12
icon

ん-、CESU-8だのRFC2279の5~6byte UTF-8を食らった場合はどう対応するのが適切なんだろう。現在のRFC3629非準拠なものには対応しない、おかしくなっても知らんがな、で良いならそうするけど…その差異をセキュリティホールとして突かれる可能性があるなら、考えないといけないし。

11:31:16
icon

UCS-2←→wchar16_t変換テーブルのジェネレータ、一応こんな感じ。 pastebin.com/raw/cZXjnifj
Debianのiconvってなんだかよく分からないんだけどC1 control領域(U+0080~U+009F)に対してよく分からない変換をしてくれるので外しておく必要があるのと、private領域(U+e000~U+f8ff)もなんかよく分からない変換をしてくれるので(ry
サロゲート領域(U+d800~U+dfff)については嫌な予感がしたので最初から変換対象に入れてません。

10:42:56 10:44:32
icon

nwc2010-libkkcを直して(mappingの影響範囲はこんな感じ github.com/jg1uaa/nwc2010-libk )とりあえずiconv()によるUCS2/JIS変換の評価はおしまい。

これをベースにsj3用のwchar16_t/UCS2変換を作れば良いかな(というかwchar16_t/UCS2変換が先だったりするんだけど)。

10:34:03
icon

JIS0208.TXT(obsolete)なUnicode/JISマッピング対応表を使うのを止めて、iconv()での変換結果から対応表を作ってみたけど、JIS0208.TXTの結果とそう変わらない(\~の部分が若干違う程度な)ので今後はiconv()を使うことにします。

というかフツーiconv()で変換してますよね…?

09:13:28
icon

出先だったんですが、揺れましたねえ。あれで震度3…

07:11:01
icon

そういえば、不正なサロゲートペアの組み合わせってどう処理されるんだろう。たとえば

上位サロゲートの後にサロゲートでないUCS-2が続く
下位サロゲート・上位サロゲート(順番が逆)
下位サロゲートのみ(上位サロゲートが無い)

なんてケースもあるはずで。

こういう時に、不正なので取り除くのか、不正っちゃ不正なんだけどなんかあるので残しておくけど無視するのかというどっちの対応が適切かというのは問われるよね(そして仕様書にはどうすべきか記載があると思うんだ…読めよ>自分)

07:03:35
icon

ふと思ったけど、iconvでEUC-JP/UCS-2テーブルを作った場合、そのテーブルのライセンスって何になるんだろう。JIS0208.TXTを使った場合はこのテキストに合わせて(?)Unicode-TOUになってるけど…OpenBSDの場合はGNU iconv使っているからやっぱGPLになるんですかねえ?

06:54:05
icon

読み仮名の付与にkakasiを使う時しかこの変換は通らないので、mecab-neologdを使う場合への影響はないと思うけど。

06:52:10
icon

多分これでucs2←→wchar16(sj3の内部コード)変換はできたはず。これだったら…以前作ったnwc2010-libkkcのUCS-2←→EUC-JP変換も古いテーブル(JIS0208.TXT)を使うんじゃなくlibiconvから生成したテーブルを使うようにした方が良いのかも。

06:21:16
icon

もしかして、iconvのTRANSLATEオプションを使うとEUC-CN←→EUC-JPをそれっぽく変換してくれたりするんだろうか

05:41:55
icon

…でもないか?記号類なんかは一応あるように見えなくもない。

05:36:49
icon

むー、UCS-2の範囲だとSS3(3byte EUC)の対応はできないのか。