Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: taro7_10.plでのEncode使用



Tadamasa Teranishi wrote:

テストありがとうございます。

> ほぼというのは、次の文字化け(?)を確認しています。
> 
> 1.「優勝!」という文字列が「優妾」に文字化けしました。
>   
>   # echo -n "優勝!" | od -t xCa
>   0000000 cd a5 be a1 a1 aa
>             M   %   >   !   !   *
>   0000006
> 
>   # echo -n "優妾" | od -t xCa
>   0000000 cd a5 be aa
>             M   %   >   *
>   0000004
> 
>   となりますので、a1 a1 が削除されています。
>   filter/taro7_10.pl を見ると、
>  $content =~ s/\xa1\xa1//g;
>   という箇所があり、意図的に削除しているようです。
>  この意図が理解できないのですが、意図に反して別のところにも
>  影響を及ぼしているようです。

動作テストをしていたときに、
全角スペースを文書の行頭の整形のために使用し単語が途中で切れてしまっ
ているファイルを多数見かけました。
このとき深く考えずに全角スペースを除去しようとしたのだと思います。

全角スペースで段組を整えているほうがおかしいのでうまく機能していない
この行は削ろうと思います。

> 2. Perl 5.8 版では、機種依存文字(株)が ? に変換されるようです。
>  Encode::from_to の仕様ということでしょう。
>  機種依存文字ですので、? になるからといって、直ちに問題になる
>  とは思っていません。
>  unicode.pl と動作が異なるということだけは覚えておいた方が
>  良いでしょう。(報告まで。)  

Perl5.8のEncodeはCP932のテーブルも持っているので
UTF→CP932→euc-jpと2段階の変換をすれば機種依存文字?もいくらか
保持できるのではないかと思います。(試してみたことはないです)
unicode.plもcp932テーブルに特有の文字を消すので
それぞれ理解して使わないといけませんね。


#去年の6月ごろにも同様話題がありましたね。

臼田幸生