相关疑难解决方法(0)

在JavaScript中编码URL?

如何使用JavaScript安全地对URL进行编码,以便将其放入GET字符串?

var myUrl = "http://example.com/index.html?param=1&anotherParam=2";
var myOtherUrl = "http://example.com/index.html?url=" + myUrl;
Run Code Online (Sandbox Code Playgroud)

我假设你需要myUrl在第二行编码变量?

javascript url encoding

2392
推荐指数
14
解决办法
145万
查看次数

如何正确解码传递给servlet的unicode参数

假设我有:

<a href="http://www.yahoo.com/" target="_yahoo" 
    title="Yahoo!&#8482;" onclick="return gateway(this);">Yahoo!</a>
<script type="text/javascript">
function gateway(lnk) {
    window.open(SERVLET +
        '?external_link=' + encodeURIComponent(lnk.href) +
        '&external_target=' + encodeURIComponent(lnk.target) +
        '&external_title=' + encodeURIComponent(lnk.title));
    return false;
}
</script>
Run Code Online (Sandbox Code Playgroud)

我已经确认external_title将编码Yahoo!%E2%84%A2并传递给SERVLET.如果SERVLET我在做:

Writer writer = response.getWriter();
writer.write(request.getParameter("external_title"));
Run Code Online (Sandbox Code Playgroud)

我在浏览器中获得了Yahoo!¢.如果我手动将浏览器字符编码切换为UTF-8,它将更改为Yahoo! TM(这就是我想要的).

所以我认为我发送到浏览器的编码是错误的(确实如此Content-type: text/html; charset=ISO-8859-1).我改为SERVLET:

response.setContentType("text/html; charset=utf-8");
Writer writer = response.getWriter();
writer.write(request.getParameter("external_title"));
Run Code Online (Sandbox Code Playgroud)

现在浏览器字符编码是UTF-8,但它输出Yahoo!但我无法让浏览器呈现正确的字符.

我的问题是:是否存在某些组合Content-type和/或new String(request.getParameter("external_title").getBytes(), "UTF-8");和/或其他会导致Yahoo! TM出现在SERVLET输出中?

java unicode servlets

36
推荐指数
3
解决办法
9万
查看次数

JSP页面中的UTF-8编码

我有一个JSP页面编码的页面ISO-8859-1.这个JSP页面有一个问题答案博客.我希望在Q/A发布期间包含特殊字符.

问题是JSP不支持UTF-8编码,即使我已将其更改ISO-8859-1UTF-8.这些字符(~,%,&,+)正在问题.当我单独或使用任何字符的组合发布这些字符时,它null在数据库中是storinh ,当我在发布应用程序时删除这些字符时它工作正常.

任何人都能提出一些解决方案吗

java jsp utf-8

32
推荐指数
9
解决办法
14万
查看次数

HTML:表单不发送UTF-8格式输入

我已经访问了HTML中关于UTF-8编码的每一个问题,似乎没有任何东西像预期的那样工作.

我添加了meta标签:没有改变.
我添加了accept-charset属性form:没有改变.


JSP文件

<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Editer les sous-titres</title>
</head>
<body>
    <form method="post" action="/Subtitlor/edit" accept-charset="UTF-8"> 
        <h3 name="nameOfFile"><c:out value="${ nameOfFile }"/></h3> 
        <input type="hidden" name="nameOfFile" id="nameOfFile" value="${ nameOfFile }"/>
        <c:if test="${ !saved }">
            <input value ="Enregistrer le travail" type="submit" style="position:fixed; top: 10px; right: 10px;" />
        </c:if>
        <a href="/Subtitlor/" style="position:fixed; top: 50px; right: 10px;">Retour à la page d'accueil</a>
        <c:if test="${ …
Run Code Online (Sandbox Code Playgroud)

html java forms jsp utf-8

9
推荐指数
2
解决办法
2万
查看次数

无法从JSP向Servlet发送特殊字符(UTF-8):显示问号

我在将一个特殊字符(如cyrillic或umlauts)从jsp发送到servlet时遇到问题.我非常感谢你的帮助.

这是我做的:

  1. 在jsp中定义了utf-8字符集:

    <%@ page language="java" contentType="text/html; charset=utf-8" 
        pageEncoding="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" />
     ...
    
    <div class="authentication">
      <form name="registerForm" action="register" method="get" accept-charset="UTF-8">
        <input type="input" name="newUser" size="17"/>
        <input type="submit" value="senden" />
      </form>
    </div>
     ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在server.xml中为Connector设置Tomcat URIEncoding

    <Connector URIEncoding="UTF-8" ...
    
    Run Code Online (Sandbox Code Playgroud)
  3. 在servlet内部 - 将CharacterEncoding设置为UTF并读取请求

    public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
    
    request.setCharacterEncoding("UTF-8");
    String username = request.getParameter("newUser");
    System.out.println("encoding: "+request.getCharacterEncoding());
    
    System.out.println("received: "+username);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 以下是使用时显示的内容:Однако

    encoding: UTF-8
    received: ??????
    
    Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?我想servlet无法正确解码String,但我不知道为什么会发生这种情况.我已经遵循了关于这个主题的所有建议,但没有运气.

提前致谢.

jsp servlets utf-8 character-encoding

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

标签 统计

java ×3

jsp ×3

utf-8 ×3

servlets ×2

character-encoding ×1

encoding ×1

forms ×1

html ×1

javascript ×1

unicode ×1

url ×1