2010-10-21 190 views
2

我java代码,我有一个字符串名称=“örebro”; //它是一个瑞典人的角色。转换为UTF8格式的字符串

但是,当我在web应用程序中使用这个名称。我在'Ö'字符上打印一些特殊字符。

有没有反正我可以使用“Örebro”中的相同字符。

我做了这样的事情,但没有奏效。

String name = "örebro"; 
byte[] utf8s = name .getBytes("UTF-8"); 
name = new String(utf8s, "UTF-8"); 

但最后的名字打印相同,就像这样。 REBO

请指引我

+0

请参阅http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html – axtavt 2010-10-21 14:57:45

回答

4

您提供的Java代码是毫无意义的,它什么都不会做。 Java字符串已经完全能够编码任何字符(尽管您必须小心源代码中的文字,因为它们取决于编译器使用的编码,这取决于平台)。

您的问题很可能是您的网页未在HTTP标头或HTML元标记中正确声明编码。

3

您需要设置输出到UTF8的编码。

1

读取页面的浏览器很可能不知道编码。

  • 发送标题在HTML页面中的东西在Java中像
    ServletResponse resource;(...)
    resource.setContentType ("text/html;charset=utf-8");

  • (之前任何其他输出),通过发送(印刷)
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    提的编码
1

如果用来生成输出的页面是JSP它的精确有用

<%@ page contentType="text/html; charset=utf-8" %>