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吗?