转换为UTF8格式的字符串
问题描述:
我java代码,我有一个字符串名称=“örebro”; //它是一个瑞典人的角色。转换为UTF8格式的字符串
但是,当我在web应用程序中使用这个名称。我在'Ö'字符上打印一些特殊字符。
有没有反正我可以使用“Örebro”中的相同字符。
我做了这样的事情,但没有奏效。
String name = "örebro";
byte[] utf8s = name .getBytes("UTF-8");
name = new String(utf8s, "UTF-8");
但最后的名字打印相同,就像这样。 REBO
请指引我
答
您提供的Java代码是毫无意义的,它什么都不会做。 Java字符串已经完全能够编码任何字符(尽管您必须小心源代码中的文字,因为它们取决于编译器使用的编码,这取决于平台)。
您的问题很可能是您的网页未在HTTP标头或HTML元标记中正确声明编码。
答
您需要设置输出到UTF8的编码。
答
读取页面的浏览器很可能不知道编码。
发送标题在HTML页面中的东西在Java中像
ServletResponse resource;
(...)resource.setContentType ("text/html;charset=utf-8");
-
(之前任何其他输出),通过发送(印刷)
提的编码<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答
如果用来生成输出的页面是JSP它的精确有用
<%@ page contentType="text/html; charset=utf-8" %>
请参阅http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html – axtavt 2010-10-21 14:57:45