トップ «前の日記(2004-12-26 [J]) 最新 次の日記(2004-12-28 [J])» 編集

Eroge RSS Checker 運営記録

Categories | メモ | 運営 | 感想 | 記号変更 | 雑記 | 雑文 | 思案

合計: 今日: 昨日:
2004年
12月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

rss1.0

ここは、「Eroge RSS Checker」に関する運営の記録を書きとめておく場所です。第三者に説明する文体で書いていますが、大半は備忘録です。

  1. スクリプトを汎用化して公開する。---最終目標
  2. CSSを論理的に使う。---努力目標
  3. デザインを改善する。---努力目標
  4. 攻略の完全・不完全を出来る限り判別する。---努力目標
  5. 管理要員用のページの充実。---努力目標
  6. JANコードの入手先を探す。---躊躇中
  7. ブランドの複数登録。---大規模改修のとき
  8. 登録を簡潔にしつつ、marker登録を半自動化する。---暇なとき

2004-12-27 [J]

_ [運営]「UTF-8」への対応ミス、「ヴ」の取り扱い

大抵、文字セットが「UTF-8」の場合、並び替えると50音順に並ぶ。濁点なども、例えば「ハ」なら「バ」もほぼ同様に扱われる。ただ、元々日本語に存在しなかったと思われる「ヴ」だけは違う。これは、「ウ」とは関係無いものとして扱われる。

したがって、50音順に並び替える場合、「ヴ」は最後にきてしまう。

MySQLの場合

order by REPLACE(furigana, 'ヴ', 'ウ')

として置換後の文字列を使用すると良い。見てのとおり汎用性がなく、「ハ」の後にに「バ」「パ」「ヒ」・・・と並ぶことには対処していない。リストが短ければ大した問題ではない。問題ないが、正しく表示しようとすると難しい。そういう場合フリガナから全ての濁点をなくすか、PHP側でソートするしかない。ただ、リストが長くなれば、50音での個別表示のみにするのが普通なので、

MySQLの場合

order by substring(furigana,4,13)

とすれば問題ない。MySQLのキャラクターセットに「UTF-8」があれば、substringは本来マルチバイト対応なので、「4」が「2」になるはずです。今回やってしまった対応ミスはここ。「4」を「3」としてしまった。こうすると要するに「12345」と続く場合「3」だと「12」を除外することになる。これだと「UTF-8」の場合カタカナ1文字3バイトなので、1文字目の途中から取ってしまう。気づくのに時間が掛かってしまう辺りあれだ・・・。

お名前:
E-mail:
コメント: