Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Ùرحبا;想知道字符的编码吗_Java_Jsp_Servlets - Fatal编程技术网

Java Ùرحبا;想知道字符的编码吗

Java Ùرحبا;想知道字符的编码吗,java,jsp,servlets,Java,Jsp,Servlets,我将字符从JSP发送到servlet,在servlet中,我将以这种格式接收字符。我想知道哪一个正在转换这个,他们正在使用哪一种编码 若我在POST方法中传递这些字符,我将按原样接收数据 我使用的是JDK1.6,Tomcat7 这是JSP <%@page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD H

我将字符从JSP发送到servlet,在servlet中,我将以这种格式接收字符。我想知道哪一个正在转换这个,他们正在使用哪一种编码

若我在POST方法中传递这些字符,我将按原样接收数据

我使用的是JDK1.6,Tomcat7

这是JSP

<%@page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><form method="get" action="register">
    Name:<input type="text" name="userName"/><br/><br/> 
    <input type="submit" value="SUBMIT"/>
</form></body></html>

它或多或少是一个UTF8编码的字符串,被解码为拉丁文1

原始字符串
由具有以下Unicode码点的字符组成:“0x645”、“0x631”、“0x62d”、“0x628”、“0x627”

当编码为UTF8时,它给出:'\xd9\x85\xd8\xb1\xd8\xad\xd8\xa8\xd8\xa7',当解释为拉丁文1时,它给出:
“ÙØا”
。字符
'\x85'
在拉丁语中通常不可打印。但是,您在问题中给出的字符串不可解码为UTF8就足够了

正如您所说的使用POST方法一样,您应该能够以UTF8编码的形式声明数据。通常
就足够了

在GET请求中,无法指定任何编码。你必须决定如何解释它们。你必须找到这样做的方法:

  • 明确地说,在应用程序级别:

    Charset u8 = Charset.forName("UTF-8");
    Charset l1 = Charset.forName("ISO-8859-1");
    String utf8String = u8.decode(l1.encode(str)).toString();
    
  • 或者让servlet容器为您执行此操作。对于Tomcat,您可以将server.xml中
    元素上的URIEncoding属性设置为预期的字符集:
    URIEncoding=“UTF-8”


它或多或少是一个UTF8编码的字符串,被解码为拉丁文1

原始字符串
由具有以下Unicode码点的字符组成:“0x645”、“0x631”、“0x62d”、“0x628”、“0x627”

当编码为UTF8时,它给出:'\xd9\x85\xd8\xb1\xd8\xad\xd8\xa8\xd8\xa7',当解释为拉丁文1时,它给出:
“ÙØا”
。字符
'\x85'
在拉丁语中通常不可打印。但是,您在问题中给出的字符串不可解码为UTF8就足够了

正如您所说的使用POST方法一样,您应该能够以UTF8编码的形式声明数据。通常
就足够了

在GET请求中,无法指定任何编码。你必须决定如何解释它们。你必须找到这样做的方法:

  • 明确地说,在应用程序级别:

    Charset u8 = Charset.forName("UTF-8");
    Charset l1 = Charset.forName("ISO-8859-1");
    String utf8String = u8.decode(l1.encode(str)).toString();
    
  • 或者让servlet容器为您执行此操作。对于Tomcat,您可以将server.xml中
    元素上的URIEncoding属性设置为预期的字符集:
    URIEncoding=“UTF-8”


文件文件=新文件(str);InputStreamReader r=新的InputStreamReader(新文件InputStream(文件));System.out.println(“接收字符串的编码:+r.getEncoding());您最好发布发送和接收的代码片段。这可能会对您有所帮助:File File=new File(str);InputStreamReader r=新的InputStreamReader(新文件InputStream(文件));System.out.println(“接收字符串的编码:+r.getEncoding());您最好发布发送和接收的片段。这可能会帮助您:为什么它会像GET请求那样被转换?以及如何在Tomcat 7中获取UTF-8字符而不在server.xml中添加URI编码。对于GET请求,这非常有帮助,感谢Serge BallestaHi Serge Ballesta。。。我从JSP传递字符,并在servlet中使用getParameter获取值并打印值。它是这样的格式,مرحبا' 现在我想把它转换成UTF-16字符串并存储在DB中。当我从DB中检索时,我想再次将其转换为HTML代码。我使用的是JSP,页面编码是ISO-8859-1、Servlet、Tomcat7,它是GET请求。你能帮我一个忙吗?为什么GET请求会这样转换?以及如何在Tomcat 7中获取UTF-8字符而不在server.xml中添加URI编码。对于GET请求,这非常有帮助,谢谢Serge BallestaHi Serge Ballesta。。。我从JSP传递字符,并在servlet中使用getParameter获取值并打印值。它是这样的格式,مرحبا' 现在我想把它转换成UTF-16字符串并存储在DB中。当我从DB中检索时,我想再次将其转换为HTML代码。我使用的是JSP,页面编码是ISO-8859-1、Servlet、Tomcat7,它是GET请求。你能帮我吗?