相关疑难解决方法(0)

JSP/GlassFish:如何正确设置UTF-8编码

我正在寻求帮助,将堆叠中的所有图层都转换为UTF-8编码.

我找到了这篇好文章:

http://www.javapractices.com/topic/TopicAction.do?Id=206

描述我需要担心编码的3个地方.由于我的(1)Oracle数据库当前设置为UTF-8,因此需要担心(2)浏览器和(3)服务器.

我也发现了这篇详细的文章

http://balusc.blogspot.com/2009/05/unicode-how-to-get-characters-right.html#JSPServletRequest

我正在尝试遵循以下内容,但有一些关于实现的新手问题.

为了解决浏览器问题,我确保在每个JSP页面的顶部包含以下内容:

<%@page pageEncoding="UTF-8"%> 
Run Code Online (Sandbox Code Playgroud)

(供参考,见这里).

为了解决服务器问题,我确保在发出request.getParameter()request.getAttribute()声明之前在Java servlet和JSP页面中包含以下行:

request.setCharacterEncoding("UTF-8");
Run Code Online (Sandbox Code Playgroud)

由于我使用的是GlassFish 3.1.2,我知道它默认不使用UTF-8,所以我需要以某种方式手动设置它.

我见过很多网站都在谈论一个名为的文件glassfish-web.xml.这是普通glassfish的一部分吗?我不知道在哪里找到它.我一直在使用web.xml我的WEB-INF文件夹中的文件作为我的Web应用程序.有人可以帮我弄清楚我是否需​​要修改这个web.xml文件,或者我是否需要找到或创建一个名为的新文件glassfish-web.xml来配置glassfish的编码?

我的web.xml文件以:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> 
...
Run Code Online (Sandbox Code Playgroud)

对于JSP/servlet请求,我在web.xml文件中包含以下行

<parameter-encoding default-charset="UTF-8"/>
Run Code Online (Sandbox Code Playgroud)

可以放入web.xml文件吗?或者,是否需要进入某个glassfish-web.xml文件?

对于JSP/servlet响应,我将以下内容放入我的web.xml文件中(请参阅此处接受的答案):

<jsp-config>
   <jsp-property-group>
       <url-pattern>*.jsp</url-pattern>
       <page-encoding>UTF-8</page-encoding>
   </jsp-property-group> 
</jsp-config>
Run Code Online (Sandbox Code Playgroud)

我假设这些线只插入<web-app>和之间</web-app>.但是,让我知道他们是否应该进入其他描述符(例如<glassfish-web-app></glassfish-web-app> …

java servlets glassfish utf-8 character-encoding

7
推荐指数
1
解决办法
1万
查看次数

jersey ResponseBuilder 文件名编码

在 javax.ws.rs.core.Response.ResponseBuilder 中,当我使用波兰语(德语、法语等)国家字符设置文件名时,它会在将响应发送到客户端之前更改文件名:

\n\n
ResponseBuilder response = Response.ok(file);\nresponse.header("Content-Disposition", "attachment; filename=\xc5\xbc\xc3\xb3\xc5\x82ty.txt");\n
Run Code Online (Sandbox Code Playgroud)\n\n

此后,文件将被下载为“-\xc3\xb3Bty.txt”。如何解决这个问题?

\n\n

编辑:\n整个应用程序可以使用 UTF-8 正常工作(例如,json 内容包含波兰语字符)。只有 http headers 没有。

\n

java jersey character-encoding jakarta-ee

5
推荐指数
1
解决办法
3211
查看次数

在HTML页面中添加UTF-8扩展的位置?

我需要在脚本标记的末尾添加charset ="utf-8"以完成对另一种语言的翻译.

我不知道我应该在哪里添加标签.遵循任何规则.请告诉我在哪里添加字符集.我是否需要在"ApplicationLoader.js"的末尾添加或仅在jquery插件之后添加.有任何建议请.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Web App</title>   

<link href="css/jquery/jquery.ui.all.css" rel="stylesheet" type="text/css" />   

<script type="text/javascript" src="js/jquery-1.4.2.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js" charset="utf-8"></script>
<script type="text/javascript" src="js/jquery.depends.js" charset="utf-8"></script>             
<script type="text/javascript" src="myemployeelist.js" ></script>
Run Code Online (Sandbox Code Playgroud)

更新:

我会让你更容易理解我的情况细节,而不是一个更新的东西我现在正在训练的新手.据我所知,我会向你解释我的问题.

  1. 我在Eclipse中创建了一个webapplication项目,在其中我创建了一个用于JDBC连接到MySQL的类.
  2. 我在serverside中有一个类,它从我的webapp文本框中获取用户配置文件值并保存在DB中.
  3. 我正在使用jQuery插件进行从英语到阿拉伯语的翻译.
  4. 我有一个HTML页面,其中如上面的部分所述,我有标签,其中我添加了charset ="utf-8"来指定unicode.
  5. 我使用dwr获取js中的值并将其发送到服务器端.
  6. 我将计算机输入语言更改为阿拉伯语,将我的Mozilla firefox语言环境更改为阿拉伯语.

我能够在mysql中输入英文值,我能够检索它,但是当我输入阿拉伯语值时,它不会被保存.JDBC错误是

java.sql.SQLException: Incorrect string value: '\xD8\xB3\xD9\x84\xD8\xA8...'
Run Code Online (Sandbox Code Playgroud)

我不知道如何配置我的服务器Jetty 6 LANG变量utf-8.有任何建议请.谢谢.

html javascript java mysql character-encoding

3
推荐指数
1
解决办法
2106
查看次数

更改 Glassfish Servlet 编码/字符集

我正在向 Glassfish 4.1 服务器上的 Servlet 发送一个 Serializable 对象,该对象具有带有阿拉伯字符的字符串字段,当我尝试记录我得到的阿拉伯值时 (?????)

我已经阅读了ThisThis以及许多其他帖子,但没有解决问题,我已经在 Tomcat 8 Server 上尝试了相同的代码,并且工作正常

我应该如何使用 Glassfish 服务器或我的 Servlet 来正确读取 UTF-8 字符?

发送 Serializable 对象:

        url = new URL(ServerInfo.STORABLE_RECEIVER_URL);            
        http = (HttpURLConnection) url.openConnection();
        http.setRequestProperty("content-type", "application/x-object;  charset=utf-8");
        http.setRequestProperty("Accept-Charset", "UTF-8");
        http.setDoOutput(true);
        http.setDoInput(true);          
        out = new ObjectOutputStream(http.getOutputStream());
        out.writeObject(t);
Run Code Online (Sandbox Code Playgroud)

网页.xml

<filter>
    <filter-name>Set Response Character Encoding</filter-name>
    <filter-class>net.abdullahcodes.serv.MyFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>Set Response Character Encoding</filter-name>
    <url-pattern>/TradableReceiver</url-pattern>
    <url-pattern>/*</url-pattern>
    <url-pattern>/</url-pattern>
</filter-mapping>

<locale-encoding-mapping-list>
    <locale-encoding-mapping>
        <locale>ar</locale>
        <encoding>UTF-8</encoding>
    </locale-encoding-mapping>
    <locale-encoding-mapping>
        <locale>en</locale>
        <encoding>UTF-8</encoding>
    </locale-encoding-mapping>
</locale-encoding-mapping-list> …
Run Code Online (Sandbox Code Playgroud)

servlets glassfish character-encoding

3
推荐指数
1
解决办法
1453
查看次数