1

我想构建客户端/服务器应用程序,客户端是android(2.2)应用程序,服务器是tomcat Java服务器,IDE是Eclips

我想使用servlet将阿拉伯数据从服务器发送到客户端,我在这里发现了这个问题 ,它非常有帮助,但我的问题是当我使用它时:

info.setText(Farsi.Convert("وليم"));

它工作得很好并打印那个阿拉伯语单词,但是当我打印阿拉伯语数据来自服务器时,如下所示:

info.setText(Farsi.Convert(results[0]));

它打印出奇怪的英文单词,所以问题可能出在从服务器发送数据到客户端或其他地方?

事情可能有助于了解问题

  1. 我可以在服务器上的控制台上打印阿拉伯语数据,效果很好
  2. 数据来自mysql,字段是utf8_unicode_ci
  3. 我使用 servlet 将数据从服务器发送到客户端,如下所示:response.setCharacterEncoding("UTF-8");response.setHeader("Info", word);

请任何帮助!,因为这个应用程序是我的毕业设计,我必须支持阿拉伯语。

谢谢你

4

1 回答 1

0

我的观点-您不应该将标题用于阿拉伯语单词,而应使用响应正文

隐藏在这里的原因 - 默认情况下 java.lang.String 构造函数使用默认系统编码,它可能不是 UTF-8 编码。您应该从手动指定 UTF-8 编码的字节数组创建字符串,但是在使用标头 AFAIK 时这是不可能的。

于 2012-08-31T09:55:23.900 回答