use*_*241 6 jsp jstl character-encoding tamil properties-file
我正在使用JSTL fmttaglib来显示泰米尔语字符.但我无法显示任何泰米尔人的角色.它没有显示泰米尔语字符,而是显示问号字符??????.我试过印地语,它也显示了问号.我现在应该怎么做?
这是我的代码.我只是尝试在泰米尔语中打印Hello World.
fileproperty.properties:
helloworld=??????? ?????
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
属性文件不支持 UTF-8。阅读javadoc:
...输入/输出流采用 ISO 8859-1 字符编码 ...
(因为您似乎在使用 Eclipse,我想知道您是否真的仔细阅读.properties了第一次保存此类文件时会显示的警告消息)
基本上,您需要该native2ascii工具将 UTF-8 保存的属性文件转换为正确的 ISO-8859-1 属性文件格式。重命名您的 UTF-8 属性文件以包含utf8文件名中的某处并按如下方式转换:
native2ascii –encoding UTF-8 fileproperty.utf8.properties fileproperty.properties
Run Code Online (Sandbox Code Playgroud)
因此,ISO-8859-1 字符集未涵盖的任何字符都将被替换为 unicode 代码点序列,如\u1234.
但是,Eclipse 已经内置了对它的支持。你应该好好利用它。您应该在“属性文件编辑器”而不是“文本编辑器”中打开属性文件(可以通过以蓝色突出显示而不是以黑色突出显示的属性值来识别)。如果默认情况下它没有这样做,请右键单击属性文件并选择Open With > Properties File Editor。如果您粘贴??????? ?????,那么 Eclipse 将(应该)自动将其转换为\u0BB5\u0BA3\u0B95\u0BCD\u0B95\u0BAE\u0BCD \u0B89\u0BB2\u0B95\u0BAE\u0BCD\u008D.
再次保存它,清理/重建/重新部署/重新启动,然后再试一次。现在应该可以正常工作了。
与具体问题无关,您@page充满了已经是默认值的值。只需以下就足够了。
<%@page pageEncoding="UTF-8"%>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3751 次 |
| 最近记录: |