ns00482015/09/04 00:06ご回答ありがとうございます。 shift_jisの文字列において、JIS X 0213で追加された文字を省くという感じです。説明が足りていなくて申し訳ありません。 テーブル化するやり方も参考にさせていただきます。
退会済みユーザー2015/09/04 03:47Shift-JISでも、かなり隙間に足されているんですね。 仕様書やコード書きの手間自体は、配列のパターンを熟知しているなら計算式や条件分岐の方がまだ早そうな気もしますね。 ただ、昔の第1水準・第2水準のチェックはこまかい隙間を考慮しないものが多いと思うので、計算で出す方法だと記号の隙間を判別できないように思います。 Shift-JISの割り当て(94*94文字*2面)でテーブルを作るとバイト換算で17KBになりますが、このサイズを惜しむ必要がなければ結局テーブルを作った方がコードのメンテは楽そうな気がします。(最初に表を用意する手間はありますが、あとはテーブル修正だけですし) テーブルを持つのも面倒という場合は、変換結果が ? になる性質を利用する手(http://divide-et-impera.org/archives/1585)も、1つの方法かと思います。
退会済みユーザー2015/09/04 05:19モヤモヤするのでJIS X 0213の変更部分をまとめている人を探してみると、こんなページがありました(http://www.eonet.ne.jp/~kotobukispace/ddt/jisx0213/sjis8xxx.html) 漢字に限る(記号などを省く)と、概ね以下の範囲になるみたいですね。 >第3水準(分断が幾つもある) 879F 87A0 - 889E 9873 - 989E EAA5 - EFFC >第4水準(分断なし) F040 - FCFC (予約領域含む) 参考:https://ja.wikipedia.org/wiki/Shift_JIS-2004
ns00482015/09/07 00:43pikovoltさんのやり方を参考にshift_jisコードで条件分岐して除外したらうまくできました!いろいろと参考サイトの紹介やアドバイスありがとうございました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/04 00:06
退会済みユーザー
2015/09/04 03:47
退会済みユーザー
2015/09/04 05:19
2015/09/07 00:43