
No.3ベストアンサー
- 回答日時:
文字化けの原因を調査しましょう。
・元のファイルは本当にShift_JISなのか
・出力されたファイルは本当にUTF-8なのか
→出力はUTF-8になっているが、ブラウザがUTF-8にならない
・「---内容を$htmlにセットして」の箇所に問題がある
ありがちなのが
・元のファイルに charset=shift_jis 等の記述がある
→出力にもそのまま残っている
というものです。そういうことは無いですか?
No.1
- 回答日時:
よほど古いバージョンでなければ、次のような流れにするとよいでしょう。
外部から取り込んだものは、decodeでutf8フラグ付き文字列にする
または、open,binmodeで文字コードを指定して、utf8フラグ付き文字列で取り込む
↓
処理: 「全角文字」も1文字として処理できる
↓
出力先の文字コードに encode で変換する
または、open,binmodeで文字コードを指定してしておく
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl …
例えば、その内容なら次のようにします。
open(IN,"$file");
→open(IN,"<:encoding(shift_jis)",$file);
open(OUT,">$file");
→open(OUT,">:utf8",$file);
場合によっては、「内容を$htmlにセット」の部分にも変更が必要かもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで提出とは?
-
perlのflock関数でロックをかけ...
-
perlでリテラル値はメモリにど...
-
perlの構文でカンマの意味が分...
-
perlをバージョンアップしたら...
-
英数文字列のうちの数値を4桁に...
-
perlでxmllint相当のスクリプト...
-
openした後、closeしないでプロ...
-
このファイルを開く方法で困っ...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlで2次元配列をサブルーチ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl cgiの文字化けを直したい ...
-
sedの動作
-
[Perl]Shift-JISのXMLを解析する場
-
【エラー】Unrecognized character
-
初心者で、困っています。(文...
-
perlをwindows環境でshift-jis...
-
Data::Dumper;でダンプ後表示し...
-
Perl出力をUTF-8に指定する方法
-
perlでのtext読み込み
-
utf-8のCSVをshift_jisに変換し...
-
Perl:Unicodeプロパティ作れない
-
perlのLWP::Simpleでgrepの値が...
-
大容量テキストファイルから任...
-
エクセルVBA コードが同じでも...
-
Windowsで複数のファイルを同じ...
-
batファイルでrenameができませ...
-
C言語で特定の行を抽出する方法...
-
VBAでCSVファイルを途中行まで...
-
MATLAB グローバル変数の宣言
-
パスから最後のディレクトリだ...
おすすめ情報
回答ありがとうございます。
ファイル形式はutf8に出来ました。
しかし中身が文字化けしてしまいます。
$htmlの日本語をutf8に変換する必要があるようです。
変数をutf8に変換するにはどのようにしたら良いでしょうか?
なんか出来たかもしれません。
cgiのファイル自体がutf8になっていなかったようです。
でさらに下を追加したら文字化けしなくなりました。
use Encode;
use utf8;
これでちょっといろいろ試してみます。
ありがとうございました。
あっダメでした。
$htmlのShift-JISが文字化けしたままでした。
$htmlをutf8に変換するには
どうすれば良いでしょうか?
ちょっと調べて見ましたが簡単には分かりませんでした。
ご存知でしたら教えてください。
こちらの環境は
Windows10pro
Perl V5.16.3
です。
ありがとうございます。
お手数をおかけしました。
元の読みだすファイルの形式がUTF-8形式になっていたようです。
これをshift_jis形式に変更して読み込んだらうまく行きました。