revTalk CGI 11: .lc ファイルで日本語
表示サンプル


On-Revのファイルは始め「.rev」がエクステンションでスタートしましたが、その後アプリケーションRevolutionが「LiveCode」と名称を改め、同時にRevolution社のサーバーアプリケーションも、バージョンアップ版「LiveCode Server」となって、ファイルのエクステンションも「.lc」が使えるようになりました。「.lc」をファイルエクステンションに使うと、LiveCodeスタックと連動してWebページが作成できますが、ユニコード日本語 UTF8が文字化けして使えなくなります。

ここでは、最もシンプルな「01: 文字列を書き出す」とほぼ同じ内容を、「.lc」ファイルで日本語が表示できるようにします。

「revTalk CGI 11: .lc ファイルで日本語」は2012年に始めか来ましたが、その後(2016年)にLiveCodeメーリング・リストで投稿されたLyn Teylaさんの方法の方が簡単でしたので、2012年に書いた項の上に書き加えました。LiveCode7になってユニコードの扱いが大きく変わったので、サーバー版も改善されたのかと思います。




2016年に追加しました。

<!-- メタタグで設定したキャラクターセットは「.lc」では有効ではありません。変わりに以下をファイルのトップに入れます。--> 
<?lc put header "Content-Type: text/html; charset=utf-8" ?>

<html>

<head>

      <!-- メタタグで設定する通常のキャラクターセットは「.lc」では有効ではありません。書く必要はない。  -->
    <!-- <meta http-equiv="content-type" content="text/html; charset=utf-8"> -->
   

   <body>

         <!-- トップに書いた lc のキャラクターセットで、UTF8の日本語が bodyタグ内で書けます。 -->
         bodyタグ内に、UTF8で日本語が書けます。

          <!-- LiveCode は「<?lc」で書き始め「?>」で閉じます。トップに書いたキャラクターセットも同様 -->
       
        <?lc
      put "Date: " & the date & "<br />"
             put "This is lc writing. <br />"
            put "
日本語も書けます。"
        ?>
            <!-- LiveCode 終わり-->

   </body>

</html>





以下2012年に書きました。新しいバージョンのサーバーだと文字化けします。

<!-- メタタグで設定したキャラクターセットは「.lc」では有効ではありません。変わりに以下をファイルのトップに入れます。--> 
<?lc set the outputTextEncoding to "utf-8" ?>

<html>

<head>

      <!-- メタタグで設定する通常のキャラクターセットは「.lc」では有効ではありません。書く必要はない。  -->
    <!-- <meta http-equiv="content-type" content="text/html; charset=utf-8"> -->
   

   <body>

         <!-- トップに書いた lc のキャラクターセットで、UTF8の日本語が bodyタグ内で書けます。 -->
         bodyタグ内に、UTF8で日本語が書けます。

          <!-- LiveCode は「<?lc」で書き始め「?>」で閉じます。トップに書いたキャラクターセットも同様 -->
       
        <?lc
    --// lc 内の始めの1行。これがないと日本語が文字化けします。 //------
            set the outputTextEncoding to native

            put "Date: " & the date & "<br />"
            put "This is lc writing. <br />"
           put "
日本語も書けます。"
        ?>
           <!-- LiveCode 終わり-->

   </body>

</html>