首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用JSTL fmt库和属性文件时,泰米尔语字符显示为问号

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

Stack Overflow用户
提问于 2013-01-02 15:37:24
回答 2查看 4.3K关注 0票数 6

我使用JSTL fmt标记库来显示泰米尔语字符。但我不能显示任何泰米尔文字。它显示的不是泰米尔语字符,而是??????中的问号字符。我尝试了印地语,它也显示了问号。我现在该怎么做?

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

fileproperty.properties

代码语言:javascript
运行
复制
helloworld=வணக்கம் உலகம்

Hello.jsp

代码语言:javascript
运行
复制
<%@ 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> 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-02 23:41:13

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

...输入/输出流采用ISO 8859-1字符编码...

(由于您似乎正在使用Eclipse,我想知道您是否仔细阅读过在第一次保存这样的.properties文件时会显示的警告消息)

基本上,您需要native2ascii工具将UTF8保存的属性文件转换为适当的ISO-8859-1属性文件格式。重命名您的UTF-8属性文件,使其在文件名中的某个位置包含utf8,并按如下方式进行转换:

代码语言:javascript
运行
复制
native2ascii –encoding UTF-8 fileproperty.utf8.properties fileproperty.properties

因此,任何未被ISO-8859-1字符集覆盖的字符都将被诸如\u1234的unicode码点序列所取代。

但是,Eclipse已经内置了对它的支持。你应该利用它。您应该在“属性文件编辑器”而不是“文本编辑器”中打开属性文件(可以通过属性值以蓝色突出显示而不是以黑色突出显示来识别)。如果默认情况下还没有这样做,请右键单击属性文件,然后选择Open With > properties file Editor。如果粘贴வணக்கம் உலகம்,那么Eclipse会(应该)自动将其转换为\u0BB5\u0BA3\u0B95\u0BCD\u0B95\u0BAE\u0BCD \u0B89\u0BB2\u0B95\u0BAE\u0BCD\u008D

再次保存,清理/重建/重新部署/重新启动,然后重试。它现在应该工作得很好。

另请参阅:

  • Unicode - How to get the characters right?

无关的到具体的问题,你的@page充满了已经是默认值的值。以下内容就足够了。

代码语言:javascript
运行
复制
<%@page pageEncoding="UTF-8"%>
票数 5
EN

Stack Overflow用户

发布于 2014-05-19 23:36:36

在你的jsp中放入这一行:

代码语言:javascript
运行
复制
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

更改message.properties -> 属性中的文件编码 -> 资源 -> 文本文件编码 -> UTF8

并在mvc-dispatcher-servlet.xml中查看此messageSource bean:

代码语言:javascript
运行
复制
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:project" />
        <property name="defaultEncoding" value="UTF-8"/>
</bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14118431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档