-> 趣旨と注意書き -> UTF8フラグ? -> UTF8フラグとPerlIOレイヤ -> UTF8フラグのついた文字列を記述する -> Wide character in print ... -> Encode -> utf8::* -> use utf8; -> use encoding; -> use UTF8 と use encoding -> JcodeからEncodeへ -> 情報源 <- モドル 趣旨と注意書き Perl 5.8.x のUnicode 関連です。 正直、5.8.x は、ネタでしか使ってなかったので(ぉ、ちゃんといじったことがありませんでした。 使ってみると、よくわかんなくなったので、ちょっとまとめてみました。 今でもあんまりわかってないかもしれないので、内容は無保証です。 突っ込み歓迎。 Jcode、Encodeのメンテナの弾さんから、ご指摘いただいたので、
文字コードとutf8フラグ Perl において、「文字コード」と「utf8フラグ」は別物です。文字コードの話の中で utf8フラグが語られるので、同じもののように思っている人も多いかもしれませんが、別物です。いや、たとえば同じものだとしても、別物だと思った方が理解しやすいと思います。 文字コード は文字とコードのマッピングに名前をつけたもので、utf8フラグは、Perlにおける文字列の扱いに付随するフラグのことです。 たとえば、以下のようなソースコードをレガシーな感じに EUC-JP で書いていたとして、 my $euc_str = 'ソースが EUC-JP なのでここは EUC-JP'; $euc_str には EUC-JP の文字列が格納されています。 これを、utf8フラッグド(utf8 flag on)にしてみます。 use Encode; my $euc_str = 'ソースが
ワンライナー ネットで見つけたワンライナーをコマンドプロンプトで使おうとすると perl -e 'print "Hello, World!"' Can't find string terminator "'" anywhere before EOF at -e line 1. こんな感じでエラーが出て使えません。 引数はダブルクォートで囲わないとダメなので少し変更しないといけません。 # 内側のダブルクォートをエスケープする perl -e "print \"Hello, World!\"" # qq 演算子を使う perl -e "print qq{Hello, World!}" # 内側のダブルクォートをシングルクォートに置き換える perl -e "print 'Hello, World!'" # q 演算子を使う perl -e "print q{Hello, World!}" p
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く