このページ:
http://erlang.org/doc/highlights.html
... 5.7/OTP R13Aを解放するhightlightsを示しています。この一節に注意してください:Unicodeの
1.2 Unicodeのサポート
サポートはEEP10で説明 として実装されています。ユニコードデータを読み取る場合は、 端末とファイルの両方がioとio_libモジュールの によってサポートされています。ファイル は、異なる ユニコードフォーマットとの間で自動的に 変換モードで開くことができます。モジュール 'unicode' には、外部と内部のユニコード の変換のための関数が含まれており、reモジュールはUnicodeデータのサポート をサポートしています。文字列 と ISO-latin-1の範囲を超える文字データを指定するための言語構文もあります。
私はベストプラクティスについての宣言をしたくありませんが、一般化を始めるための最小限の完全な例を持つことが役立つことがよくあります。ここでは、utlをerlangアプリケーションに変換し、もう一度別のコンテキストに送信します。それが見えるよう
hg clone http://bitbucket.org/justin/webmachine/ webmachine-read-only
cd webmachine-read-only
make
./scripts/new_webmachine.erl mywebdemo /tmp
svn checkout http://erlang-mysql-driver.googlecode.com/svn/trunk/ erlang-mysql-driver-read-only
cd erlang-mysql-driver-read-only/src
cp * /tmp/mywebdemo/src
svn checkout http://mochiweb.googlecode.com/svn/trunk/ mochiweb-read-only
cp mochiweb-read-only/src/mochijson2.erl /tmp/mywebdemo/src
cd /tmp/mywebdemo
編集のsrc/mywebdemo_resource.erl:あなたがUTF8の文字を含むテーブルの行フィールドでMySQLデータベースを持っていたと仮定すると、ここでそれを取得し、パイプそれJSONなどのWebブラウザにする一つの方法ですこのように:
-module(mywebdemo_resource).
-export([init/1, to_html/2]).
-include_lib("webmachine/include/webmachine.hrl").
init([]) -> {ok, undefined}.
to_html(ReqData, State) ->
mysql:start_link(pool_id, "database.host.com", 3306, "db_user", "db_password", "db_name", fun(A, B, C, D) -> ouch end, utf8), %% add your connection string info
{data, Res} = mysql:fetch(pool_id, "select * from table where IdWhatever = 13"),
[[_, Utf8Str, _]] = mysql:get_result_rows(Res), %% pattern will need to be altered to match your table structure
{mochijson2:encode({struct, [{Utf8Str, 100}]}), ReqData, State}.
すべてを構築し、URLディスパッチャを起動します。
make
./start.sh
そして、ウェブページ(またはMozReplのような、より便利なもの)で次のコマンドを実行します。
var req = new XMLHttpRequest;
req.open('GET', "http://localhost:8000", false);
req.send(null);
eval("(" + req.responseText + ")");
Mochijson2をエンコードし、UTF8でJSONをデコードする... – mwt
はまた、あなたは標準ライブラリのUnicodeモジュールを認識していますか? – mwt
EEP 10は受け入れられたとマークされているようです。 Starlingとの関係がわからない場合は... – Zed