• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Pod::Usageで日本語を使用するには?)

Pod::Usageで日本語を使用するには?

このQ&Aのポイント
  • perlスクリプトのUsageをPod::Usageを使用して記述する方法について詳しく教えてください。
  • Pod::Usageの中で日本語を使用する方法がわかりません。Encode.pmを利用している環境ですが、文字化けしてしまいます。
  • Getopt::LongとPod::Usageを使ったスクリプトで、-manオプションの時に日本語が表示されず文字化けしてしまいます。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • x415f484f
  • ベストアンサー率71% (57/80)
回答No.1

お使いの環境をお書きになってないのでわかりませんが…… ※ Linux だと仮定します、的外れでしたらご容赦ください。 >「-man」の時に日本語が表示されず文字化けしてしまいます。 __END__ のすぐ下に =encoding などで文字コードを指定するとどうなりますか? また そのスクリプトを less で表示すると化けますか? 環境変数 LANG はどうなっていますか? # たぶんスクリプト内の日本語のエンコードと環境変数のエンコードとが異なっていると # 化けるのではないかと思われますが……

renkado
質問者

お礼

ご指摘のとおり、LANG設定を変更したら解決いたしました。 ※環境はLinuxでした、説明不足で申し訳ありませんでした。 ちなみに、 $ENV{ LANG } = "ja_JP.eucJP" ; $ENV{ JLESSCHARSET } = "japanese" ; とスクリプト内で設定するだけで解決できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Pod::Usageで日本語を使用するには?(2)

    QNo.3933527 でも質問させて頂きましたが、新たな問題が出てきたので再度質問させて頂きます。 Linux環境にて、Pod::Usageを用いてスクリプトの日本語説明が記載されたUsageを作成しております。 ですが、日本語が文字化けして困ってます。 LinuxのOSにより、日本語がうまく表示される環境と文字化けするものとに分かれてしまいます。 文字化けする環境下では、スクリプト自体をlessで表示しても文字化けしてしまします。 lessで日本語を読めるような設定にすると解決しそうなのですが、 root権限が無い環境下で何か解決策はないものでしょうか?? #/etc/man.config  は権限が無く書き換えられません・・。 ちなみに、現在は文字化けしないようにPod::Textで表示しているのですが、usageが長文であり、windowに表示しきれず不便な思いをしております。 よろしくお願いします。

  • 日本語の変換について

    cgi&Perl初心者です。"greetings.txt"というテキストファイルから指定文字列を検索して出力させるというcgiスクリプトを作りたいのですが、日本語の変換がうまくいきません。バージョンは5.8.8を使っているのですが、encodeモジュールやjcodeを使ってみたのですがどうもうまくいきません…。使い方が間違っているのは明らかなのですが、調べても自分にはどうしてもわからないのです。どなたか教えていただけませんでしょうか?よろしくお願いします。 ちなみに使用しているスクリプトです。 #!C:\Perl\bin\perl use strict; use CGI; my $target_file = "greetings.txt"; my $q = new CGI; print $q->header(), $q->start_html(-title=>'search'); print $q->startform(-method => 'GET', -name => 'myform'), $q->textfield('key'), $q->submit('ok'), $q->endform, "\n"; my $key = quotemeta $q->param('key'); if ($key !~ /^\s*$/) { if (open(F, $target_file)) { my $r = ""; while (<F>) { if (s|($key)|<font color="red">$1</font>|gi) { $r .= $_; } } $r = "NOT FOUND" if ($r eq ""); print "<pre>$r</pre>\n"; } else { print "ERROR: Can't open '$target_file'\n"; } } print $q->end_html(), "\n";

  • perlの日本語文字コードはどうすべき?

    perlで細かいことを理解できないままに呪文のように頭に require 'cgi-lib.pl'; require 'jcode.pl'; を使っていました。 そのうち文字化けなどの問題も出て、いろいろ調べたり質問したりして、jcode.plは古いからJcode.pmを使いなさいと指摘を受けたので、 require 'cgi-lib.pl'; require 'Jcode.pm'; と呪文変更を行いましたが、これについての使い方を理解せぬうちに、use Encode qw(from_to encode);としなさいと指摘を受け、 require 'cgi-lib.pl'; use Encode qw(from_to encode); と変えて使っていました。 ところが、このパターンを使っていたところ、GETでのデータの受渡がうまくできない(internal server error)となることに気づきました。 2つ目のパターンでも同じでした local($key,$val); undef(%in); &ReadParse; my($method) = $ENV{'REQUEST_METHOD'}; if ($method eq "GET"){ $QUERY_DATA = $ENV{'QUERY_STRING'}; }elsif ($method eq 'POST'){ read(STDIN, $QUERY_DATA, $ENV{'CONTENT_LENGTH'}); }else{ &error; } データの受信はこのようにはじめています。 そもそもJcode.pmやuse Encode qw(from_to encode);というのはjcode.plに変わる日本語変換のパッケージなのでしょうか? また、 require 'cgi-lib.pl'; require 'jcode.pl'; use Encode qw(from_to encode); とするとGETでの受渡も問題なかったのですが、2つを混在させても問題ないのでしょうか? というのも、メール送信で文字変換させるときに sub jis{ my $msg = $_[0]; Encode::from_to($msg, "shiftjis", "iso-2022-jp"); return $msg; } としているので、use Encode qw(from_to encode);がないとEncode::from_to()が使えないのかなと想像し2つをセットで使用しています。(冒頭でuse Encode qw(from_to encode)を宣言し、変換部分でEncode::from_to()を使用) jcode.pl、Jcode.pm、use Encode qw(from_to encode)、Encode::from_to()の関係について教えてください。 もちろん自分でもネットで調べてみましたが、思うように解説してあるところが見つからず困っています。

    • ベストアンサー
    • Perl
  • 日本語のpunycode変換詳しい方教えてください

    日本語ドメインのpunycode変換ツールを作ろうと思っているのですが、 以下のようにperlで作成すると、 日本語をpunycode変換した部分の前に'-'が余計に付きます。 どうしてなのでしょうか? プログラム: #!/usr/local/bin/perl use strict; use utf8; use IDNA::Punycode; idn_prefix('xn--'); my $jdomain = "日本語"; my $adomain = encode_punycode(${jdomain}); # HTTPヘッダ出力 print qq{Content-type: text/html\n\n}; print "[${jdomain}]→[${adomain}]\n"; exit(0); 結果: [日本語]→[xn---wgv71a119e] 正しい結果は、 [日本語]→[xn--wgv71a119e] になるはずです。 ちなみに、IDNプレフィックスを idn_prefix(''); にすると、結果は、 [日本語]→[-wgv71a119e] 本来の結果は、 [日本語]→[wgv71a119e] となるはずです。

    • ベストアンサー
    • Perl
  • Encodeについて

    こんにちは。いつもお世話になっております。 Encodeモジュールについて質問です。インプレスジャパンから出版 されている「まるごとPerl」にEncodeについて読みましたが、理解 できていないのか、いざスクリプトを書くとうまくいきません。 練習として記述し、utf-8で保存したのが下記です。 use strict; use warnings; use Encode; my $test='文字化けしやすい漢字です。表圭臀能'; my $moji=decode('utf-8',$test); my $ans=encode('utf-8',$moji); print "Content-type: text/html;charset=utf-8\n\n"; print <<EOH; <html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Encode</title> </head> <body> <p class="moji">$ans</p> </body> </html> EOH そもそも、スクリプトをshift_jisで保存したときに文字化けが 起きないようにしたかったので、上記のスクリプトを変えて、 my $moji=decode('shift_jis',$test); my $ans=encode('utf-8',$moji);  そしてshift_jisで保存して実行してみましたが、ブラウザには 何も表示されません。 どこが間違っているのか、教えて頂ければ幸いです。 かなり初歩的な内容だと思いますが、どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • Perl
  • 日本語が化けるのですが。

    windows XP下でJSDK1.4.0とjackarta POI(最新版)を使用してStringの配列からexcelシートに日本語を書き込もうとするとすべて文字化けをするのですが、やはりencodeがおかしいのでしょうか。

    • ベストアンサー
    • Java
  • 日本語処理(文字コード)関係のエラーの対処法について

    日本語処理(文字コード)関係のエラーの対処法について ・環境は、XAMPPを使用しています。 perl、phpの簡単なプログラム(hello worldのようなもの)を実行して動きました。 ・asperlを文法チェックに使っています -実行したいサンプルプログラム- 原文(「SPIDERING HACKS中のプログラム」)は下記のutf8がshiftjisです。が、utf8に変更しました #!/xampp/perl/bin/perl use strict; use LWP::Simple; use Encode; use encoding 'utf8'; # 使用しているプラットフォームにあわせてください。 binmode(STDERR, ':raw :encoding(utf8)'); # 同上 my $id = shift @ARGV || '074'; # 引数の取得(デフォルトはニュージーランド) # 外務省海外安全ホームページ my $url = "http://www.anzen.mofa.go.jp/info/info4.asp?id=$id"; my $content = get($url); die "$url を読み込めませんでした。" unless defined $content; # $contentを読み込んで危険情報を確認する。 $content = decode('utf8', $content); # コンテンツのコード変換 $content =~ s/<!--(.*?)-->//gs; # HTML内のコメント削除 $content =~ / SELECTED>▼([^<]+)</; # 国名の取得 print "$1\n"; if ($content =~ /現在、危険情報は出ておりませんが、/) { print " 危険情報は出ていません。\n"; } else { print " 危険情報が出ています!\n"; }; print " 詳細はhttp://www.anzen.mofa.go.jp/を見てください。\n"; ローカル環境で、asperlを使用して文法チェックを行うと、エラーはありませんでした。 ところが、ローカル環境で実行すると、 Cannot decode string with wide characters at C:/xampp/perl/lib/Encode.pm line 174. というエラーが出ます。 これは、Encode.pm の 174行目で引っかかってている、ということでしょうか? だとしても、対処法が分かりません。 日本語処理で問題が発生しているようなのですが…。

    • ベストアンサー
    • Perl
  • 見せて 日本語 か?

    私は  スペイン語!!! 私は  日本語 を勉強したいです 私は スペイン語 教え の Excuse me the mess (disaster)ザ・ 災害 くめなさい my language is spanish the japanese (nihongo) is too hard and need help if you help i will help you to talk, reado and writte spanish, dont leave me die. mi idioma es Espanhiol el japones es muy dificil y necesito ayuda si tu me ayudas yo te ayudo en lo que quieras aprender espanhiol.

  • perl5.8.6日本語の置換について

    教えてください。perl5.8.6の日本語処理で行き詰まっています。 下記のプログラムをeuc-jpで書いて動作させたところ、s///gの 置換がうまくいきません。 何か間違っているのでしょうか。 weather.pl --------------------------- #! /usr/bin/perl # 使い方: # require "weather.pl"; # $data=weather; use LWP::Simple; use strict; use encoding 'euc-jp'; use Encode qw/from_to/; binmode STDERR,"encoding(euc-jp)"; sub weather{ my $doc; my $adrs = "http://www.jma.go.jp/JMA_HP/jp/warn/text/27.html"; until($doc){ $doc = get "$adrs"; } from_to($doc,'shiftjis','euc-jp'); $doc =~/<tr><td><pre>(.+)<\/pre><\/td><\/tr>/s; $doc = $1; $doc =~s/」/ /g; $doc =~s/パーセント/%/g; $doc =~s/[0-9]/[0-9]/g; $doc; } 1; my $result=weather; print "$result\n"; ---------------------------

    • ベストアンサー
    • Perl
  • CDexの使用法は?

    tonton-triboさんのご指導で、Cdexをインストールして、日本語化もできましたが、使用法がわかりません。 ヘルプは英語でわかりません。 ディスクを入れて(再生)を押しても反応がありません。 使用法またはヘルプを日本語で記述してある所をご存じの方ありましたら教えて下さい。