Java 在servlet中打印UTF8扩展字符
我尝试了这段代码,效果非常好:Java 在servlet中打印UTF8扩展字符,java,servlets,Java,Servlets,我尝试了这段代码,效果非常好: package code; public class TestClass { public static String myName="محمد mohammed"; public static String getMyName() { return myName; } public static void main(String[]
package code;
public class TestClass
{
public static String myName="محمد mohammed";
public static String getMyName()
{
return myName;
}
public static void main(String[] args)
{
System.out.println(getMyName());
}
}
我得到了这个结果:
穆罕默德
但当我尝试在同一个包和项目中从servlet调用时:
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
...
System.out.println(TestClass.getMyName());
...
}// END DO GET
我得到了这个结果:
????穆罕默德
此外,我尝试直接从servlet打印,任何阿拉伯字母都会得到“?”
注:
在我使用的两个文件中:UTF-8
**
它通过更改服务器编码来解决。见下文:
**
转到(如果使用Eclipse):
1-服务器。
2-打开服务器。
3-查找:打开午餐配置,然后打开它。
4-去公共场所。
5-更改编码
如何“打印”?System.out.println(..);这看起来像是编码问题。你能试试这个:
stringmyname=newstring(“mohammed.getBytes(),“UTF-8”)代码>谢谢,我试过了:stringmyname=newstring(“mohammed.getBytes(),“UTF-8”);但是我仍然得到了“?”标记,这可能是因为您在编译servlet时没有告诉java编译器编码是UTF8吗?