用native2ascii.exe实现国际化
用java SDK/bin目录下的native2ascii.exe把.peoperties文件中的中文转换成unicode字符,实现国际化
需要用到java SDK\\bin 目录下的native2ascii.exe程序,把你写的文本文件转成unicode字符即可,
native2ascii - Native-to-ASCII Converter
将一个文件中的非拉丁或非UNICODE字符形式转换成拉丁或UNICODE字符的文件。
native2ascii [options] [inputfile [outputfile]]
Java编译器和其它的Java工具仅仅能够处理Latin-1或者Unicode(\?形式)编码的字符,native2ascii工具将包含其它编码形式的文件转换成拉丁或UNICODE格式。
native2ascii a.txt b.txt //从a.txt的中文转换成b.txt编码
可选项参数
-reverse
执行还原操作:把一个文件从拉丁或UNICODE格式转换成本地编码格式的字符。
native2ascii -reverse a.txt b.txt //从a.txt的编码转换成b.txt中文
例: native2ascii 源文件名.txt 新文件名.txt
测试 ResourceBundleTest.java
import java.util.Locale;
import java.util.ResourceBundle;
p lic class ResourceBundleTest
{
p lic static void main(String args[])
{
ResourceBundle rb = ResourceBundle.getBundle("LocalStrings", Locale.CHINA);
//LocalStrings 为peoperties文件的文件名称
String title = rb.getString("helloworld.title");
System.out.println(title);
}
}
LocalStrings.properties
# This locale is zh_CN
helloworld.title=你好啊~~
输出乱码~~
用native2ascii.exe把中文格式化
# This locale is zh_CN
helloworld.title=\你\好\啊~~
输出:
你好啊~~
在Servlet中的例子应用,Tomcat下的例子,根据reqst不同选择响应的语言也不相同~~
/**//*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific lang ge governing permissions and
* limitations under the License.
*/
/**//* $Id: HelloWorldExample.java,v 1.3 2004/03/18 16:40:33 jfarcand Exp $
*
*/
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
/** *//**
* The simplest possible servlet.
*
* @author James Duncan Davidson
*/
p lic class HelloWorldExample extends HttpServlet
{
p lic void doGet(HttpServletReqst reqst,
HttpServletResponse response)
throws IOException, ServletException
{
ResourceBundle rb =
ResourceBundle.getBundle("LocalStrings",reqst.getLocale());
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
String title = rb.getString("helloworld.title");
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor=\"white\">");
// note that all links are created to be relative. this
// ensures that we can move the web application that this
// servlet belongs to to a different place in the url
// tree and not have any harmful side effects.
// XXX
// making these absolute till we work out the
// addition of a PathInfo iss
out.println("<a href=\"../helloworld.html\">");
out.println("<img src=\"../images/code.gif\" height=24 " +
"width=24 align=right border=0 alt=\"view code\"></a>");
out.println("<a href=\"../index.html\">");
out.println("<img src=\"../images/return.gif\" height=24 " +
"width=24 align=right border=0 alt=\"return\"></a>");
out.println("<h1>" + title + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
标签:国际化,java,title,native2ascii,exe,println,txt,out
From: https://blog.51cto.com/u_16065168/6445474