hlf0626
游民
积分:82

网页的字符编码问题

每一网站的网页源文件的编码可能为gbk,gb2312等,
这样在text(utf-8)视图上显示为乱码,
问:如何转换才能在它上面正常显示?

nancy
版主
积分:902

请检查一下在所写的lzx文件的开始处是否加入了“<?xml version="1.0" encoding="utf-8"?> ” 如果没有就再加一下

hlf0626
游民
积分:82


这个有加

openface
技术支持
积分:390

是在网页上显示乱码吗?

如果是webide 的话,加了那句就够了.如果是本地的话 有UE 或者其他编辑工具同时要把lzx文件保存为UTF-8格式.

openface
技术支持
积分:390

对于网页源文件是需要经过一次处理将文件转存为UTF-8的格式的,就是说除了
之外,所需要使用的其它源文件也是需要经过处理的。

hlf0626
游民
积分:82

你说UTF-8的格式之外的其它源文件是需要经过处理的。怎么处理,比如把gb2312的源文件通过你们的openface 平台怎么处理成UTF-8的格式

openface
技术支持
积分:390

目前OpenFace只支持UTF-8编码,其它任何编码的中文在Openface上显示都是乱码。

如果是直接去请求其它网站的一个非UTF-8编码的网页,那么暂时没有办法解决。解决方案是自己做一个服务段,做一个中转,把对方非UTF-8编码的转成UTF-8的。
过程大致如下:客户端(openface模拟器上运行的lzx应用)
--请求-- 你的中转服务地址 --请求--其它网站

中转用的JSP部分样例
//如果模拟器中请求的参数中有中文必须用下面转化,否则在JSP中可能不能正确识别
request.getParameter(name).getBytes("ISO8859_1"),"utf-8")


URL tirc = new URL(url); //这个url将是请求其它网站url
HttpURLConnection con=(HttpURLConnection)tirc.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
//使用openStream得到一输入流并由此构造一个BufferedReader对象
String res = "";
String inputLine;
while ((inputLine = in.readLine()) != null){
res += inputLine;
}
res = res.replace("GBK", "UTF-8");
response.setContentType("text/xml; charset=utf-8"); //

这个很重要

hlf0626
游民
积分:82

那么能不能把中转的进入一步解析处理,直接生成所要的xml的格式的消息源,这样在lzx平台上用dataset就容易处理,可以吗

nancy
版主
积分:902

尽量在中转时将数据进行处理,这样多个客户端就可以公用处理后的数据。可以减少客户端的负担。