パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

求むテスター!新システムの公開ベータテスト開始」記事へのコメント

  • EUC-JP to UTF-8 (スコア:1, 参考になる)

    by Anonymous Coward
    \~ ̄―\~∥…-¥¢£¬
    # こっちに書いてあっちで見るの
    • Re:EUC-JP to UTF-8 (スコア:2, 参考になる)

      by ryoryoryo (5621) on 2005年06月27日 16時08分 (#758774) ホームページ 日記
       親コメントの AC さんとは別人ですが、

      euc-jp utf8n
      \ 0x5C 0x5C
      ~ 0x7E 0x7E
       ̄ 0xA1B1 0xEFBFA3
      ― 0xA1BD 0xE28095
      \ 0xA1C0 0x5C
      ~ 0xA1C1 0xE3809C
      ∥ 0xA1C2 0xE28096
      … 0xA1C4 0xE280A6
      - 0xA1DD 0xE28892
      ¥ 0xA1EF 0xEFBFA5
      ¢ 0xA1F1 0xC2A2
      £ 0xA1F2 0xC2A3
      ¬ 0xA2CC 0xC2AC

      のように変換されていますね。

       ここで、全角逆斜線 (Fullwidth Reverse Solidus, euc-jp: 0xA1C0) が半角逆斜線 (Reverse Solidus, utf8n: 0x5C) に変換されています。
       このため、IE6.0sp1 では全角逆斜線のつもりで書いた文字が半角逆斜線として表示され、Firefox 1.0.4 (Win32) に至っては半角円記号 (Yen Sign) として表示されてしまいます。(これらの挙動はわたしの手元の環境で確認したものであり、環境によっては違った挙動を示すかもしれません)

       euc-jp: 0xA1C0 を全角逆斜線 (Fullwidth Reverse Solidus, utf8n: 0xEFBCBC) に変換するようにしていただければ、少なくとも上記の 2 環境においては書き手の意図通りの表示がなされたのですが、そのように修正していただけませんでしょうか?
      親コメント
      • testへのデータ入力は直接UTF-8で投稿されない場合はPerl 5.8の持つ変換テーブルを使ってEUC-JPやShift_JISからの変換を試みます。

        データベースの移行時にはMySQL 4.1の持つ変換テーブルを使っています。具体的にはいまEUC-JPが入ってるMySQL 4.0なデータベースをそのままmysqldump(1)して、文字コード変換機能が付いたMySQL 4.1でset names ujisした上で変換をmysql(1)に任せてUTF-8なテーブルに収納しています。

        直接testに全角逆斜線を入力した場合は問題ないので、MySQLの変換テーブルの不備の様です。ググったところ、MySQL日本語の旅 [timedia.co.jp]というサイトに考察がまとめらていました。これをベースに移行スクリプトの改善を試みます。
        親コメント

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

処理中...