2015-05-29 96 views
2

我有一種情況。用ejabberd解析不同的語言

使用ejabberd模塊,我可以成功輸入英文字符串,例如「測試」最初從HTTP頭解析爲< <「test」>>。

但是,現在當我嘗試不同的語言輸入時說印地語或希伯來語,我的模塊失敗。我不確定究竟需要什麼(客戶端/服務器)。

某些編碼UTF-8或Base-64會導致自動處理幾種語言嗎?

僅供參考,當我做到以下幾點:

httpConn.setRequestProperty("GROUPNAME", "विकिपीडिया"); 

這裏विकिपीडिया是印地文等效Wikipaedia。

[224,164,181,224,164,191,224,164,149,224,164,191,224,164,170,224,165,128,224,164,161,224,164,191,224,164,175,224,164,190] 

這顯然是原始二進制數據(我猜):

我ejabberd作爲寫入的Mnesia這一點。

請提供您的輸入信息,以瞭解設計中哪些類型的方法可以處理所有不同的語言字符串。

我有一個Android客戶端,它發佈這個HTTP請求到ejabberd的一部分。 但是,它永遠無法在收件人一端構造。

所有我看到的是嗎?-marks即一個字符串

???????????????? 

我在想什麼?

+0

ejabberd是兼容Unicode編碼。在ejabberd中沒有什麼特別的要支持任何語言。在實踐中,ejabberd在世界各地以任何語言成功使用(中文,俄文,日文等) –

回答

0

我不知道ejabberd如何解析HTTP頭的細節,但如果使用unicode模塊來處理你的字符串,你應該罰款:

Eshell V5.10.4 (abort with ^G) 1> X = unicode:characters_to_binary("विकिपी डिया" ). <<224,164,181,224,164,191,224,164,149,224,164,191,224,164, 170,224,165,128,224,164,161,224,164,191,224,164,175,224, 164,...>> 2> io:format("~ts~n", [X]). विकिपीडिया ok

如果你想要做io:format基於調試,請記住將您的格式字符串設置爲"~ts",而不是"~s"

簽出更多的位置:http://www.erlang.org/doc/man/unicode.html