人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlプログラム初心者です。
文字列をutf8に変換したいのですが下記コードではうまくいきません。

$string = "テスト";
use Encode;
$string = encode ( 'utf8' , $string );

ご教授よろしくお願いします。



●質問者: kaemhatti
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Perl String コード テスト プログラム
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● uwao
●23ポイント

下記では如何ですか。

→UTF

use Jcode;

Jcode::convert(\$string,'utf8');

→sjis

use Jcode;

$utflistdata = Jcode::convert( $string , "sjis", "utf8" );


2 ● mamy1326
●23ポイント

Encodeを使用されるのであれば下記ではどうでしょうか?

Encode::from_to($string,'shift-jis','utf-8');

http://www.horse-water.mydns.jp/tips/tips_P00022.html

http://saboten009.blogspot.com/2008/01/perl.html

ここらへんが参考になるかもしれないです。


3 ● TREEG
●22ポイント

その1

(($string = "テスト";
use Encode;
#入力される文章がshift-jisの代わりに、euc-jpであれば、euc-jpにすること。
Encode::from_to( $string , "shift-jis", "utf8" );

open(F,">text.txt");
print F "$string";
close(F);))

.

その2

((
#短い文字などの場合失敗することがありますので用途によっては、クエリに確実に判別できる文字を入れて判別させることもあるようです。

$string = '文字コードの自動判別。';
use Encode;
use Encode::Guess qw/euc-jp shift-jis/;
$enc = guess_encoding($string);
Encode::from_to( $string , $enc , "utf8" );

open(F,">text.txt");
print F "$string";
close(F);))

.

参考

http://prog.coresv.net/perl/html/0/RW5jb2RlOjpHdWVzcw.html


4 ● まきのっぴ
●22ポイント

encode する前に decode しないとダメです。


仮にソースが Shift_JIS で書かれているとしたら、encode する前にまず

$string = decode ( 'shiftjis', $string );

です。


decode と encode を繰り返すかわりに

Encode::from_to ( $string , 'shiftjis' , 'utf8' );

でもいいです。


この辺を参考にしてください。

Perl 5.8.x Unicode関連

404 Blog Not Found:perl - Encode 入門

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ