No.1774 Re:EUCコード使用時の送信データ文字化けについて |
> お久しぶりです。去年、幾度かお世話になりました矢神です。
> 最近SoSいじりを再開させたのですが、また一つ壁に当たってしまいましたので質問させて下さい。
> 原因がSoSにあるのかどうか判断できなく、質問が不適切でしたらすみません。
>
> SoSではデフォルトでjcode.plを使用し、文字コードはsjisを使っていますが
> エラーが激しいので、eucに変更しようと思いました。
> sub decodeのsjisをeucにし、プログラム自体も全てEUCに変更する事でとりあえず上手く行ったかと思ったのですが、
> フォーム等で送信されるデータに文字化けが起こってしまいます。
> コードが違う時のように全部が文字化けする訳ではないのですが、
> ひらがなの「あ」を続けて書くと一部が「う」に化けてしまったり、と言った感じに、
> ほんの少しだけが化けてしまいます。
> ローカルのApache上でも、レンタルサーバー上でも同じように文字化けが起こり、
> Jcode.pmに変えてみても同様でした。
>
> 情報が少なすぎるかとも思いますが、これだけで思い当たる原因は何かありますでしょうか?
どうやらsub decodeの「$value =~ s/△/▲/g;」で変換されてしまうようです。(EUCの'あ'がA4A2で'△'がA2A4なので'あ'が連続するとマッチしてしまうため。)
1文字1文字変換するようにすれば解決しますがマルチバイトコードなので困難だと思います。
ですので、もしEUCのまま改善しようとするのであれば区切り文字を'△'ではなく1バイト文字にするのが良いのではないかと思います。
この場合、sub decodeで変換されている'"'などを使用するか、未変換の'@'などにして変換処理をsub decodeに追加するか、が必要になります。
▼関連発言
│
└◆1773:EUCコード使用時の送信データ文字化けについて [矢神] 12/04 19:26
└◆1774:Re:EUCコード使用時の送信データ文字化けについて [moon] 12/05 00:25
└◆1776:Re[2]:EUCコード使用時の送信データ文字化けにつ... [矢神] 12/05 06:08
└◆1777:Re[3]:EUCコード使用時の送信データ文字化けに... [moon] 12/05 13:42
└◆1778:Re[4]:EUCコード使用時の送信データ文字化け... [矢神] 12/05 16:24
└◆1779:Re[5]:EUCコード使用時の送信データ文字化... [moon] 12/05 18:47<-last
◇題名は、短くわかりやすく書いてください。 ◇過去に同じ内容が投稿されていないか検索してから書き込んで下さい。 ◇管理人の判断により相応しくない投稿は削除します。 |