gpt4 book ai didi

jsp - 使用 JSTL fmt 库和属性文件时,泰米尔语字符显示为问号

转载 作者:行者123 更新时间:2023-12-04 11:34:25 34 4
gpt4 key购买 nike

我正在使用 JSTL fmt taglib 显示泰米尔语字符。但我无法显示任何泰米尔语字符。它不是显示泰米尔语字符,而是显示问号字符,如 ?????? .我试过印地语,它也显示问号。我现在该怎么办?

这是我的代码。我只是尝试用泰米尔语打印 Hello World。
fileproperty.properties :

helloworld=வணக்கம் உலகம்
Hello.jsp :
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org /TR/html4/loose.dtd">
<html>
<fmt:setLocale value="ta-IN"/>
<fmt:setBundle basename="fileproperty"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home</title>
</head>
<body>
<fmt:message key="helloworld"/>
</body>
</html>

最佳答案

属性文件不支持 UTF-8。阅读 javadoc :

... the input/output stream is encoded in ISO 8859-1 character encoding ...


(因为您似乎正在使用 Eclipse,我想知道您是否真的仔细阅读了第一次保存这样的 .properties 文件时它会显示的警告消息)
基本上,您需要 native2ascii将 UTF-8 保存的属性文件转换为正确的 ISO-8859-1 属性文件格式的工具。重命名您的 UTF-8 属性文件以包含 utf8文件名中的某处并将其转换如下:
native2ascii –encoding UTF-8 fileproperty.utf8.properties fileproperty.properties
因此,ISO-8859-1 字符集未涵盖的任何字符将被替换为 unicode 代码点序列,如 \u1234 .
但是,Eclipse 已经内置了对它的支持。你应该好好利用它。您应该在“属性文件编辑器”而不是“文本编辑器”中打开属性文件(可以通过以蓝色突出显示而不是以黑色突出显示的属性值进行识别)。如果默认情况下它没有这样做,请右键单击属性文件并选择打开方式 > 属性文件编辑器。如果您粘贴 வணக்கம் உலகம் ,那么 Eclipse 将(应该)自动将其转换为 \u0BB5\u0BA3\u0B95\u0BCD\u0B95\u0BAE\u0BCD \u0B89\u0BB2\u0B95\u0BAE\u0BCD\u008D .
再次保存它,清理/重建/重新部署/重新启动,然后再试一次。现在应该可以正常工作了。
也可以看看:
  • Unicode - How to get the characters right?

  • 无关 具体问题,你的 @page充满了已经是默认值的值。只需以下就足够了。
    <%@page pageEncoding="UTF-8"%>

    关于jsp - 使用 JSTL fmt 库和属性文件时,泰米尔语字符显示为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14118431/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com