日本語処理、ActivePerlでは無理なのでしょうか?
下記test.plを実行すると、
========================================================
"\x{00e3}" does not map to shiftjis at test.pl line 10.
...
u is \x{00e3}\x{0082}\x ...
"\x{0082}" does not map to shiftjis at test.pl line 11.
...
s is \x{0082}\x{00e6}\x{0081}[\x{0082}±
me is 倉田真由美
=========================================================
となって、倉田真由美しか期待通りに出力されません。
外部ファイルの"よーこ"を正しく扱う方法はないのでしょうか?
test.pl (utf-8)
--------------------------------------------
use utf8;
binmode STDOUT => ":encoding(shiftjis)";
binmode STDERR => ":encoding(shiftjis)";
require 'u.pl'; # utf-8 の外部スクリプト
require 's.pl'; # sjisの外部スクリプト
$me = "倉田真由美";
print "u is $u\n";
print "s is $s\n";
print "me is $me\n";
-------------------------------------------
u.pl (utf-8)
-------------------------------------------
$u = "よーこ";
-------------------------------------------
s.pl (sjis)
-------------------------------------------
$s = "よーこ";
-------------------------------------------
ActivePerl 5.8.0.806
Windows2000 (cmd.exe)
よろしくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
ウチで使っているのは
ActivePerl v5.8.4
build 810
で
環境は
XPProです
#1の答えの様にして、期待通り動きました。
最新バージョンに変えてみてはどうでしょうか
完璧です!
5.8.6にバージョンアップしたら、みごと解決できました!
ありがとうございます!!
同一人に20pt+10ptはできないみたいで20だけさせていただきました。
No.1
- 回答日時:
読み込みするスクリプトファイルの方で、エンコードを記入しておく。
u.pl (utf-8)
-------------------------------------------
use encoding utf8;
$u = "よーこ";
-------------------------------------------
s.pl (sjis)
-------------------------------------------
use encoding sjis;
$s = "よーこ";
-------------------------------------------
ありがとうございます。
でも解決できませんね。
use utf8;
use shiftjis;
等も試しましたが、シフトJISの方だけdoes not mapが吐かれなくなりました。
しかし、出力は
s is \x{00a6}\x{005b}\x{00b1}
s is よーこ
u is よーこ
と出したいのです。
こちらの環境が悪いのでしょうか?
かなり基本的なことだと思うのですが、方々調べても解決策はありませんでした(2日も使ってしまいました)。
「Perlには無理」とエキスパートの方からはっきり言って頂けるとあきらめもつくのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Messengerを読んで貰うには
-
Perlで特定文字列から特定文字...
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
Perlのエラーについてご教授く...
-
perlで2次元配列をサブルーチ...
-
Perlでの文字列置換
-
perlで自動ログインをしたいが...
-
アルファベットに付いて質問し...
-
perlのrequireの動き方について...
-
exit aaaa();
-
これをビジュアルスタジオで実...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlをwindows環境でshift-jis...
-
Perl cgiの文字化けを直したい ...
-
Data::Dumper;でダンプ後表示し...
-
Perl:Unicodeプロパティ作れない
-
Perlでのファイル出力における...
-
Perl 正規表現について
-
does not map to shiftjis は解...
-
ファイル出力をUTF8Nではなくて...
-
perlでuse utf8でsjisのファイ...
-
文字を一文字ずつ区切りたい
-
Perl UTF8で出力
-
Perl utf8上でshiftjisをデコード
-
【エラー】Unrecognized character
-
HTTP::Request::Common qw(POST...
-
複数種類の括弧でくくられてな...
-
大容量テキストファイルから任...
-
[perl5.8] SJISで出力したはず...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
-
VBAでCSVファイルの特定行を書...
おすすめ情報