-1

文字列内のすべての重大な文字を見つけて、perl に置き換える必要があります。私は次のコードでこれをやろうとします

$str=~ s/è/è /g;

が、è見つかりませんでした。XML ファイルに挿入する必要があるため、墓の文字を変換する必要があります。

尋ねられたように、これはコードです

sub ConvertiCaratteri()
{
    my ($variabile)=shift;
    #&lt; <
    #&gt; >
    #&amp; &
    #&apos; '
    #&quot; "
    $form{$variabile}=~ s/&/&amp; /g;
    $form{$variabile}=~ s/</&lt; /g;
    $form{$variabile}=~ s/>/&gt; /g;
    $form{$variabile}=~ s/'/&apos; /g;
    $form{$variabile}=~ s/"/&quot; /g;
    $form{$variabile}=~ s/à/&agrave; /g;
    $form{$variabile}=~ s/è/&egrave; /g;
    $form{$variabile}=~ s/é/&amp;&eacute; /g;
    $form{$variabile}=~ s/ì/&amp;&igrave; /g;
    $form{$variabile}=~ s/ò/&amp;&ograve; /g;
    $form{$variabile}=~ s/ù/&amp;&ugrave; /g;
}

& < ecc のような char では機能しますが、墓石では機能しません。

4

2 に答える 2

0

Perlスクリプトと処理しようとしているファイルの間にエンコーディングの不一致がある可能性があります。HTMLがUTF-8でエンコードされている場合は、次のように入力してみてください。

use utf8;

スクリプトの最初に。

さらに良いことに、HTML ::エンティティを使用します:

use utf8;
use HTML::Entities qw(encode_entities);
encode_entities 'è';    # returns '&egrave;'
于 2012-07-30T08:42:09.120 に答える