通常のHTMLと "ÖÄÅöäå"(スウェーデン語)のような特殊なUnicode文字でファイルを開き、フォーマットしてファイルに出力しようとしています。ファイルを開いて保存するときにエンコードが失われる
これまでのところすべてがうまくいきました。ファイルを開いて、必要な部分を見つけてファイルに出力できます。ここ
しかし、ポイントは次のとおりです。
私は(たとえば、「ö」が「ö」になります。)私のエンコーディングを失うことなく、ファイルに入力されたUnicodeデータを保存することはできません。
私は、コード自体に手動で入力することで、正規表現を実行し、それらを出力してエンコードを修正することができます。しかし、私がファイルをインポートしているときにフォーマットしてから出力しないでください。
(エンコーディング問題のないファイルに例えば、この出力することができる。)OCTを使用する際のアプローチを作業の例:エンコーディングが失われているので、以下の
my $charsSWE = "öäåÅÄÖ";
# \344 = ä
# \345 = å
# \305 = Å
# \304 = Ä
# \326 = Ö
# \366 = ö
my $SwedishLetters = '\344 \345 \305 \304 \326 \366';
if($charsSWE =~ /([$SwedishLetters]+)/){
print "Output: $1\n";
}
方法は動作しません(これは、迅速な実例であります)コードの一部のが、その概念は同じである[例えば、開いているファイル、フェッチして出力。]:
open(FH, 'swedish.htm') or die("File could not be opened");
while(<FH>)
{
my @List = /([$SwedishLetters]+)/g;
message($List[0]) if @List;
}
close(FH);
どのフォーマットが中断していますか?あなたは空白を失っていますか? –
いいえ、私は自分のキャラクターが "真のフォーム"を失うことを意味しました。例えば、öは¶になります。 – Alexander