「半角カナを全角カナに変換」の版間の差分
ナビゲーションに移動
検索に移動
imported>Webmaster (ページの作成:「windows7において半角カナから全角カナへの変換方法についていろいろ調べてみて、自分にとって使いやすいプログラムを見つけ...」) |
imported>Webmaster |
||
1行目: | 1行目: | ||
windows7において半角カナから全角カナへの変換方法についていろいろ調べてみて、自分にとって使いやすいプログラムを見つけたので備忘的に残しておきます<br /> | windows7において半角カナから全角カナへの変換方法についていろいろ調べてみて、自分にとって使いやすいプログラムを見つけたので備忘的に残しておきます<br /> | ||
【修正ポイント】<br /> | 【修正ポイント】<br /> | ||
− | * | + | *Windoes端末からの操作のためbinmode STDOUTをcp932へ変更 |
− | |||
− | 参考:[http://blog.livedoor.jp/dankogai/archives/51693618.html 404 Blog Not Found] | + | 参考:[http://blog.livedoor.jp/dankogai/archives/51693618.html 404 Blog Not Found]<br /> |
参考:[http://blog.livedoor.jp/dankogai/archives/51031595.html 404 Blog Not Found] | 参考:[http://blog.livedoor.jp/dankogai/archives/51031595.html 404 Blog Not Found] | ||
− | |||
− | |||
− | |||
<syntaxhighlight lang="perl"> | <syntaxhighlight lang="perl"> | ||
− | + | use strict; | |
− | + | use warnings; | |
− | + | use utf8; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | #これで標準出力が自動的にcp932にencodeされる | |
+ | binmode STDOUT , ":encoding(cp932)"; | ||
− | + | { | |
− | + | use Encode; | |
− | + | use Encode::JP::H2Z; | |
− | + | my $eucjp = Encode::find_encoding('eucjp'); | |
− | + | sub hankaku2zenkaku { | |
− | + | my $str = $eucjp->encode(shift); | |
− | + | Encode::JP::H2Z::h2z(\$str); | |
− | + | $eucjp->decode($str); | |
− | + | } | |
− | + | sub zenkaku2hankaku { | |
− | + | my $str = $eucjp->encode(shift); | |
− | + | Encode::JP::H2Z::z2h(\$str); | |
− | + | $eucjp->decode($str); | |
− | + | } | |
− | + | } | |
− | + | ||
− | + | print hankaku2zenkaku("オンドゥルルラギッタンディスカー!?"), "\n"; | |
− | + | print zenkaku2hankaku("ウソダドンドコドーン"), "\n"; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | ---- | ||
+ | == 文字コードを意識的にプログラムする == | ||
+ | 入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基本方針をまもっていれば幸せになれます。 | ||
+ | |||
<!-- カテゴリに追加するページ名を記入 --> | <!-- カテゴリに追加するページ名を記入 --> | ||
[[Category:Perl|はんかくかなをぜんかくかなにへんかん]] | [[Category:Perl|はんかくかなをぜんかくかなにへんかん]] |
2016年1月1日 (金) 14:40時点における版
windows7において半角カナから全角カナへの変換方法についていろいろ調べてみて、自分にとって使いやすいプログラムを見つけたので備忘的に残しておきます
【修正ポイント】
- Windoes端末からの操作のためbinmode STDOUTをcp932へ変更
参考:404 Blog Not Found
参考:404 Blog Not Found
use strict;
use warnings;
use utf8;
#これで標準出力が自動的にcp932にencodeされる
binmode STDOUT , ":encoding(cp932)";
{
use Encode;
use Encode::JP::H2Z;
my $eucjp = Encode::find_encoding('eucjp');
sub hankaku2zenkaku {
my $str = $eucjp->encode(shift);
Encode::JP::H2Z::h2z(\$str);
$eucjp->decode($str);
}
sub zenkaku2hankaku {
my $str = $eucjp->encode(shift);
Encode::JP::H2Z::z2h(\$str);
$eucjp->decode($str);
}
}
print hankaku2zenkaku("オンドゥルルラギッタンディスカー!?"), "\n";
print zenkaku2hankaku("ウソダドンドコドーン"), "\n";
文字コードを意識的にプログラムする
入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基本方針をまもっていれば幸せになれます。