Perlゼミ

  1. Perl
  2. Mojolicious

UTF-8の扱い / Mojoliciousリファレンス

MojoliciousでUTF-8を利用する場合の扱い方。

ポイントはみっつ。ひとつは、スクリプトでUTF-8を扱う場合はutf8プラグマを有効にするということ。もちろんファイルはUTF-8で保存します。

use utf8;

(現在のMojoliciousでは、自動的にutf8プラグマが自動的に設定されるため、記述する必要はありません。)

ふたつめは、リクエストがコントローラーにわたってきた時点で、パラメーターなどに含む文字列は内部文字列に変換済みであるということ。ですので注意点としてはたとえばデータベースに登録するときなどは、内部文字列からバイト文字列に変更する必要があるということです。

みっつめは、テンプレートが描画されるときには、内部文字列からバイト文字列に変換されるということです。テンプレート自体は読み込まれた時点でバイト文字列から内部文字列に変換され、出力されるときに内部文字列からバイト文字列に自動的に変換されます。ですからrenderメソッドなどで、パラメータを渡すときは内部文字列に変換した文字列を渡す必要があります。

get '/' => sub {
  my $self = shift;

  # 内部文字列に変換済み
  my $title = $self->param('title');
    
  # データベースに保存するときなどは内部文字列からバイト文字列へ変換

   # データベースから取り出すときなどはバイト文字列から内部文字列へ変換

  # 内部文字列を渡す
  $self->render(title => $title);
}
Perlの書籍
  • 業務に役立つPerl

    ログ解析など日本語を含むテキスト処理の実践!
    この私、Perlゼミの作者が執筆しています。
    ご購入、口コミ歓迎。
  • Perlの書籍 »
自己紹介
木本裕紀

「こっ、こしゃくな。
このPerオタクめ~!」

Twitter
フォロー、いいね、リツート、コメント歓迎

Youtube

チャンネル登録、いいね、コメント歓迎

kimoto.yuki@gmail.com
応援メッセージ、質問、間違い報告歓迎

木本システム株式会社
ご紹介キャンペーン実施中です。契約金額の10%をご紹介料としてお支払い。

(例)30万円のシステム開発委託契約が、1年続いたら、36万円がもらえる!!!