Struts应用中的Unicode问题
在我的struts项目中,我需要展示一些国际性的特征。我已将该字符存储在数据库中。因此,当我从DB检索到JSP时,它会显示如下内容Struts应用中的Unicode问题,unicode,struts,Unicode,Struts,在我的struts项目中,我需要展示一些国际性的特征。我已将该字符存储在数据库中。因此,当我从DB检索到JSP时,它会显示如下内容 和#2344ेपा我花了2整天的时间在不同的论坛上解决它,但我找不到合适的解决方案。这是我最后的希望。我希望有人能透过光照在我身上 如果我点击链接,输入iso-8859-1字符नेपा将其转换,它将显示我的国际字符 谢谢 不,这是存储在DB”和#2344中的内容ेê
和#2344ेपा代码>我花了2整天的时间在不同的论坛上解决它,但我找不到合适的解决方案。这是我最后的希望。我希望有人能透过光照在我身上
如果我点击链接,输入iso-8859-1字符नेपा代码>将其转换,它将显示我的国际字符
谢谢
不,这是存储在DB”和#2344中的内容ेपा'代码>
这就是我所说的html实体。当您使用jstlc:out
输出此字符串时,它将再次逃逸&
符号,以避免html注入和跨站点脚本攻击。呈现页面的html源代码如下所示:
नेपा
这意味着浏览器将逐字呈现&
符号
您链接的网页似乎提供了未转换字符串作为txt下载,因为它只包含ascii范围内的字符。如果使用浏览器打开此文件,它可能会尝试将其解释为html并显示相应的国际字符
您应该调查数据库中已经存在编码字符的原因,最好将实际字节存储在定义的编码中,如utf-8。当您将数据插入MySql数据库时,是否对字段使用NVARCHAR
类型,如果是,是否在表前添加了N
您必须以Unicode方式将其放入数据库中,这可以通过在字段名之前放入N
来实现。您是否确实将html实体存储在db中?不,这是存储在db'和#2344ेपा'霍斯特曼,非常感谢你。现在我明白发生了什么。但是,与其将其存储为字节,还可以对字符进行解码,然后传递给JSP。这可能吗?@JavaGuy:可以通过将c:out
的escapeXml
设置为false来实现,但我不建议这样做。这样做将允许用户在您的页面中显示任意html和javascript,这可能用于某些恶意效果。@JavaGuy:首先,您需要帮助了解这些编码字符保存在db中的原因,请提出一个新问题,并包括jsp和action类的相关部分。