May 2008 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
2006年も宜しくです♪最近はmixiとカラオケにうつつを抜かしていますが(^^;

May 12, 2008

20080511 perl エンティティのdecodeがよくわからんにゃ その2

前日の日記「20080510 perl エンティティのdecodeがよくわからんにゃ

でぐだぐだ迷っていたが・・・ど〜にか光が見えたっぽい。
htmlへ戻すときの問題についてはいまひとつキレイに解決はしてないんだけどね。

いろんなサイトさんをぐるぐる。


で結論。

Windowsのshiftjisは本来の狭義のshiftjisぢゃないらしい。

というわけで、普通に変換してもうまくゆかなかったのだよねぇ。


新しい規格でcp932というのがあるらしい・・・。


で、とりあえずおぼえがき以下。(らんばと君の場合)
データテキストにするとき・・・曲目と歌手とランカーの部分に以下をかませる。
(例は曲目でふ)

$songtitle=encode('cp932', decode_entities(decode('shiftjis',$songtitle)));


もしかしたらdecodeのとこもcp932がいいかもなぁと思いつつ・・未検討。
 やってることは・・
 1.shiftjisをunicodeに
 2.デコード
 3.unicodeをcp932に

htmlにデータテキストから作るとき・・・曲目と歌手の部分に以下をかませる。(ランカーは全角のみだからいいかにゃぁと割愛したんだけどどーなんだろ??)
ただし上記の逆をすると不要な変換までかかっちゃったのでもーベーシックな部分だけにしたんだが・・ほかになんかあるかなぁ?もしくはもっといい手があるかにゃぁ・・
(例はこっちも曲目)


$text =$songtitle[$idx]
$text =~ s/&/&/g;
$text =~ s/</&lt;/g;
$text =~ s/>/&gt;/g;
$songtitle[$idx] = $text;

あんまりかっこよくにゃいが(笑)


以下参照URL
Microsoftコードページ932 - Wikipedia:http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932

新キャラクタセット cp932 / eucjpms:http://www.mysql-partners-jp.biz/techinfo/tech_01.html

まあこれができるのはPerl5.8以上のはずなので、Perl5.6.1などではEncodehttp://search.cpan.org/search?dist=Encodeの代わりにEncode561http://www.kawa.net/works/perl/i18n-emoji/Encode561.pm.htmlを使ってどこまでできるかにゃぁ(ふに)

Posted by Yacchan at May 12, 2008 01:00 AM Clip!! IB Karaoke&Net
コメント(直近6件まで表示、全0件)
コメントする









edit for admin