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>