【问题标题】:Jsp Page Show İ, Ü AS Ä On ServerJsp 页面显示 İ, Ü AS Ä 在服务器上
【发布时间】:2016-12-18 07:43:12
【问题描述】:

这是我第一次遇到这个问题。我有一个 jsp 页面,它正在使用引导程序。在本地使用 netbeans - apache tomcat 没有字符问题,但是当我上传到服务器土耳其字符时,如 İ,Ü 显示为 Ä

我总是使用这段代码来解决 UTF-8 问题:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("UTF-8");
%>

但现在,它不起作用。有没有人看到这样的错误?

我该如何解决这个问题?

【问题讨论】:

  • 您可以检查浏览器是否没有为此 URL 使用其他编码。可以告诉浏览器忽略特定 URL 的给定编码!此外,如果您将网页保存到磁盘并在十六进制编辑器中查看,是否会出现预期的十六进制值(即 İ 的 C4 B0)?
  • @MrLister 是浏​​览器可以显示不同的编码,相同的页面具有不同的 url 吗?
  • 我的意思是如果你告诉浏览器对某个网页使用某种编码(例如对于 Firefox,它是视图 -> 文本编码),那么 Firefox 会记住该页面的设置并在下次使用它你访问。这就是为什么这些事情是您应该首先检查的原因。编辑:在您的情况下,似乎是其他情况,但检查浏览器不会造成任何伤害。

标签: javascript java jsp utf-8


【解决方案1】:

我这样修复它,但它似乎不是健康的解决方案:

获取参数

    String rsubject = ""+request.getParameter("subject");

然后转换为 UTF-8 作为新字符串。

    byte[] brsubject = new byte[rsubject.length()];
    for (int i = 0; i < rsubject.length(); i++) brsubject[i] = (byte) rsubject.charAt(i);
    String subject = new String(brsubject, "UTF-8");

它正在工作,但如果有任何健康的解决方案,你必须分享。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 2015-04-02
    • 1970-01-01
    相关资源
    最近更新 更多