分享

Laszlo3.0中文全解决

 smoking_boy 2005-10-11
1、首先在*.lzx文件中需要加上:<?xml version="1.0" encoding="GBK"?>,这样如果*.lzx中的中文就可以正确的显示,比如Button的标签等。

2、将界面上的数据发送至服务器,服务器端的JSP文件应该加上:
<%@ page import="java.util.*" %>
<%@ page contentType="text/xml; charset=GBK" %>

然后对字符串进行如下格式转换:
String str = request.getParameter("username");
byte p[] = str.getBytes("8859_1");
String username = new String(p, 0, p.length, "UTF-8");
System.out.println("username : " + username);

3、数据绑定:
a、利用xml数据文件绑定数据,则XML文件格式如下:
<?xml version="1.0" encoding="GBK"?>
<menus>
<menu>english</menu>
<menu>中文</menu>
</menus>
b、利用JSP绑定数据,则JSP文件如下:
<%@ page import="java.util.*" %>
<%@ page contentType="text/xml; charset=GBK" %>
<%
String username1 = "english";
String username2 = "中文";

byte p[] = username2.getBytes("UTF-8");
username2 = new String(p, 0, p.length, "GBK");

StringBuffer str = new StringBuffer();
str.append("<menus>");
str.append("<menu>" + username1 + "</menu>");
str.append("<menu>" + username2 + "</menu>");
str.append("</menus>");

out.println(str.toString());
%>
则*.lzx文件可以正确显示中文。

4、将界面上的数据再回传客户端显示,如 lps-3.0\examples\components 目录下的form_example.lzx和echo.jsp例子。
则需进行如下改动:
a、在form-example.lzx文件第一行添加 <?xml version="1.0" encoding="GBK"?>
b、修改echo.jsp的第10行为 <%@ page contentType="text/xml; charset=GBK" %>
修改echo.jsp的第25行为 String ustr = new String(p, 0, p.length, "GBK");
此时在界面上输入中文,一切OK!

测试的文件源码:
1、chinese.lzx
<?xml version="1.0" encoding="GBK"?>
<canvas>

<dataset name="menus" src="request.jsp" request="true" type="http"/>
<dataset name="dsSendData" request="false" src="response.jsp" type="http"/>

<view x="20" y="20">
<list>
<textlistitem datapath="menus:/menus/menu/text()" />
</list>

<edittext id="username" width="150"></edittext>
<button onclick="sendData()">确定
<method name="sendData">
Debug.write("sendData");
var d=canvas.datasets.dsSendData;
var p=new LzParam();
p.addValue("username", username.getText(), true);
d.setQueryString(p);
d.doRequest();
</method>
</button>

<simplelayout axis="y" spacing="10"></simplelayout>
</view>

<simplelayout axis="y" spacing="20"/>
</canvas>

2、request.jsp
<%@ page import="java.util.*" %>
<%@ page contentType="text/xml; charset=GBK" %>
<%

String username1 = "english";
String username2 = "中文";

byte p[] = username2.getBytes("UTF-8");
username2 = new String(p, 0, p.length, "GBK");

StringBuffer str = new StringBuffer();
str.append("<menus>");
str.append("<menu>" + username1 + "</menu>");
str.append("<menu>" + username2 + "</menu>");
str.append("</menus>");

out.println(str.toString());
%>

3、response.jsp
<%
String str = request.getParameter("username");

byte p[] = str.getBytes("8859_1");
String username = new String(p, 0, p.length, "UTF-8");

System.out.println("username : " + username);
out.println("<result>success</result>");
%>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多