- 締切済み
OSの文字コードを取得
ココでも、googleでも検索したのですが みつけられなかったので教えてください。 Perlスクリプトを書いているのですが OSの文字コードを取得する方法があれば知りたいです。 具体的には Encode::from_to($aaa, "utf8","euc-jp"); という部分の"euc-jp"を、直で書きたくないのです。 my $os_encode = *****; として、なんとかうまく取得して Encode::from_to($aaa, "utf8",$os_encode); としたいのです。 OSの文字コードを取得する方法があれば教えてください。 よろしくお願いいたします。
- to_kyo
- お礼率57% (11/19)
- Perl
- 回答数2
- ありがとう数0
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- Perlの文字コードを意識したファイルの読み込み方
perl5.8でファイルを読み込む場合、文字コードを意識した以下のような呼び方("<:euc-jp")があるのですが この方法で読み込んだ$datの中身はperlの内部コード(UTF8)になっているということでしょうか? それとも、普通に("<")で読み込んで$dat = Encode::decode("euc-jp", $dat);とすべきでしょうか? use utf8; use Encode; my $fname = "test.txt"; # 文字コードがEUC-JP my $dat = ""; open(IN, "<:euc-jp", "$fname) or die "open error!"; flock(IN, 2); while(<IN>){ $dat .= $_; } close(IN);
- ベストアンサー
- Perl
- Perlの文字コード
1-2年ほど前、Perl5.8でソース自体をUTF8N(LF)で記述するようになり、 以下のように書いていました。 use utf8; use encoding "utf8"; use Encoding; それからPHPに移り、PHPでは、ソースはEUC-JP、DBもEUC、HTMLに出力する際もEUC-JPで統一していました。 最近またperlを使い出して疑問に思ったのですが、 perlではどのような文字コードで統一すれば一番よいのかということです。 javascriptはUTFだと動作しない端末(ザウルス)などあり、 perlもEUC-JPで統一しようと考えています。 昔、UTF8にこだわったのは、おそらく 「構」という文字は5Cなので、 文字コードによる不具合(ソース,js,cssで)を避けるためと、流行のUTF8にしたと思います。 perlでEUC-JPで文字コード統一させるメリットデメリットが知りたいです。 最近perlで書かれたサイトでHTML出力がShift_JISだったのですが、perlソースもシフトJISかは知りませんが、Shift_JISで統一するデメリットが知りたいです。 あと、WEBでどの文字コードが現在主流で、今後どうなるかも知りたいです。 EUC-JPで安泰なら、話は早いですが・・・
- ベストアンサー
- Perl
- WWW::Mechanizeの文字コードについて質問
WWW::Mechanizeの文字コードについて質問 以下のようなソースコードを書いて実行してみたのですが どのサイトを取得しても、すべて文字コードがUTF8だと認識されます。 ------------------------------------------------------- #!/usr/bin/perl #WWW:MechanizeでHTMLの取得 use WWW::Mechanize; $w = WWW::Mechanize->new(); $w->get("URL"); $html=$w->content; #文字コードの判別 use Encode; use Encode::Guess qw/ascii utf8 euc-jp shiftjis 7bit-jis/; my $dec = Encode::Guess->guess($html); print$dec->name; ------------------------------------------------------- 例えば以下のサイトは文字コードがEUC-JPですがこれもprintされるのはUTF8となってしまいます。 http://barukanlog.blog31.fc2.com/blog-entry-541.html WWW:Mechanizeでサイトを取得し、サイトの文字コードを調べてすべてsjisにする ということがしたいのですが、すべてutf8に判断されて先へ進めないんです。 何か設定やメソッドを追加しなくてはいけないのでしょうか? わかりにくい質問かとは思いますがご回答お願いします。
- 締切済み
- Perl
- Perl 文字コードについて
From: $from To: $mailto CC: $mailcc Subject: $subject Mime-Version: 1.0 Content-type: text/plain;charset=\"UTF-8\" Content-Transfer-Encoding: 8bit この時点で、UTF-8を指定しました。 use Encode; use Encode::Guess; Encode::Guess->set_suspects( qw/ euc-jp shiftjis 7bit-jis / ); $name = encode('UTF-8', decode('Guess', $name)); で本文を、UTF-8に変換して送るようなコードを書きました。 これで一応、パソコン、スマホ共に「本文」は文字化けせず送れるのですが、 今度、別の問題が発生してしまったようで、 「件名」が文字化けしてしまうようになりました。 $subject = encode('UTF-8', decode('cp932', $subject)); 件名も、本文と同じように変換コードをしてみたところ、パソコンでは文字化けしませんでしたが「件名」で文字化けしてしまいます。 調べたところ本文と件名では、内容が違い MIMEエンコードを使用するとのことだったのですが、 実際どのように使うのかわからないです。 $subject = encode('ISO-2022-JP', decode('cp932', $subject)); encode('MIME-Header-ISO_2022_JP', $subject) このように記述するとスマホでは文字化けしないのですが パソコンで文字化けしてしまいます。 そこで、件名がパソコンとスマホで文字化けしないようにし、本文はUTF-8で送るようにするにはどのようにすればいいのでしょうか?
- ベストアンサー
- Perl
- Perlの文字コード変換について
ActivePerl-5.14を使っているのですが、文字コードの変換はどのようにすればいいのでしょうか。 ローカル環境で動かしているのですが、Shift-JISのテキストを読み込んで、EUC-JPに変換したいと思っているのですが、 今まで5.8を使っていたので、Jcodeを使って、&Jcode::convert(\$txt,'euc'); としていたのですが、5.14ですと use Jcode; の時点でエラーになってしまいます。 use Encode; を使って、 from_to($txt, 'shiftjis', 'euc'); としてみましたが、 from_to($txt, 'shiftjis', 'euc'); のところでエラーになってしまいます。 ActivePerl-5.14ですと、どのように文字コードの変換をすればいいのでしょうか。 どなたか教えてください。 よろしくお願いいたします。
- ベストアンサー
- Perl
- 文字コード? 推奨UTF-8?
以前、EUC-JPの文字コードを使っていましたが、ホームページの文字コードをUTF-8に変えた後、 クッキーやフォーム(FORMタグ)が正しく動作しなくなりました。 Perl(Perlも5.6から5.8に変更)でCGI組んでいるのですが、何が原因なのでしょうか?
- ベストアンサー
- Perl