2015-05-29 74 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