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にセット」の部分にも変更が必要かもしれません。
No.3ベストアンサー
- 回答日時:
文字化けの原因を調査しましょう。
・元のファイルは本当にShift_JISなのか
・出力されたファイルは本当にUTF-8なのか
→出力はUTF-8になっているが、ブラウザがUTF-8にならない
・「---内容を$htmlにセットして」の箇所に問題がある
ありがちなのが
・元のファイルに charset=shift_jis 等の記述がある
→出力にもそのまま残っている
というものです。そういうことは無いですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Ruby 教えてください 2 2023/01/04 17:50
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- その他(プログラミング・Web制作) Pythonを勉強しています。 5 2023/08/25 09:51
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlをwindows環境でshift-jis...
-
batファイルでrenameができませ...
-
エラー 'dir.h' : No such fi...
-
HTMLのフォームで画像と文...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
Perlの変数に文字数制限(容量...
-
readdir()で得られるファイル・...
-
ファイル全てを .xlsm に変更し...
-
while(<ハンドラ>) {} で行数を...
-
パスから最後のディレクトリだ...
-
テキストデータから指定した1...
-
一定時間が経過したフォルダの削除
-
htaccessで特定のディレクトリ...
-
ReadLineでの読み出し行を指定する
-
1行がやたら長いテキストをバッ...
-
while文がうまく動かない
-
chdirがうまくできない
-
openした後、closeしないでプロ...
-
VBAでタブ区切りテキストの保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Perl cgiの文字化けを直したい ...
-
HTTP::Request::Common qw(POST...
-
utf-8のCSVをshift_jisに変換し...
-
ファイル出力をUTF8Nではなくて...
-
[Perl]Shift-JISのXMLを解析する場
-
perlのmysqlで文字化けをする、...
-
文字を一文字ずつ区切りたい
-
perlでuse utf8でsjisのファイ...
-
Perl utf8上でshiftjisをデコード
-
does not map to shiftjis は解...
-
DBIモジュールと Perl5.8
-
消費税の計算で 税込価格から...
-
Data::Dumper;でダンプ後表示し...
-
Perl UTF8で出力
-
perlをwindows環境でshift-jis...
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
おすすめ情報
回答ありがとうございます。
ファイル形式はutf8に出来ました。
しかし中身が文字化けしてしまいます。
$htmlの日本語をutf8に変換する必要があるようです。
変数をutf8に変換するにはどのようにしたら良いでしょうか?
なんか出来たかもしれません。
cgiのファイル自体がutf8になっていなかったようです。
でさらに下を追加したら文字化けしなくなりました。
use Encode;
use utf8;
これでちょっといろいろ試してみます。
ありがとうございました。
あっダメでした。
$htmlのShift-JISが文字化けしたままでした。
$htmlをutf8に変換するには
どうすれば良いでしょうか?
ちょっと調べて見ましたが簡単には分かりませんでした。
ご存知でしたら教えてください。
こちらの環境は
Windows10pro
Perl V5.16.3
です。
ありがとうございます。
お手数をおかけしました。
元の読みだすファイルの形式がUTF-8形式になっていたようです。
これをshift_jis形式に変更して読み込んだらうまく行きました。