Java 使用hibernate将阿拉伯语插入mysql
我正在尝试将阿拉伯语值插入mysql数据库。我的web应用程序是使用hibernate构建的,基于MVC模式。 在我尝试了很多东西之后,我会问: Mysql:Java 使用hibernate将阿拉伯语插入mysql,java,mysql,hibernate,jsp,arabic,Java,Mysql,Hibernate,Jsp,Arabic,我正在尝试将阿拉伯语值插入mysql数据库。我的web应用程序是使用hibernate构建的,基于MVC模式。 在我尝试了很多东西之后,我会问: Mysql: 我已更改了数据库、表和列以接受UTF-8。 现在,我可以使用mysql接口插入阿拉伯语文本 TomCat: 我添加了URIEncoding=“UTF-8” JSP:我将放在所有JSP中 问题是,我可以在jsp中显示阿拉伯语文本,但无法插入数据库。当我打印它时,我得到Ù?Ø?Ù?我得到了当我这样打印时System.out.println(新
我已更改了数据库、表和列以接受
UTF-8。
现在,我可以使用mysql接口插入阿拉伯语文本
TomCat:
我添加了URIEncoding=“UTF-8”
JSP:我将
放在所有JSP中
问题是,我可以在jsp中显示阿拉伯语文本,但无法插入数据库。当我打印它时,我得到Ù?Ø?Ù?我得到了代码>当我这样打印时System.out.println(新字符串(obj.getName().getBytes(),“UTF-8”)代码>
当我打印System.out.println(新字符串(“لكلحف”).getBytes(),“UTF-8”)代码>我明白了
是否可能是由于多重编码
编辑:
我是在从tomcat 9迁移到tomcat 8后得到的,但我得到了
é而不是é
这个怎么样?我添加了hibernate.connection.characterEncoding=UTF-8 hibernate.connection.useUnicode=true hibernate.connection.encoding.force=true
问题是当信息从jsp传递到我的服务器时。但是我看不出我做错了什么,在获取请求时,您是否将使用正确编码的setCharacterEncoding作为第一件事?是的,@Override protected Filter[]getServletFilters(){CharacterEncoding Filter CharacterEncoding Filter=new CharacterEncoding Filter();CharacterEncoding Filter.setEncoding(“UTF-8”);characterEncodingFilter.setForceEncoding(true);返回新筛选器[]{characterEncodingFilter};}
这是怎么回事?我添加了hibernate.connection.characterEncoding=UTF-8 hibernate.connection.useUnicode=true hibernate.connection.encoding.force=true
问题是当信息从jsp传递到我的服务器时。但我看不出我做错了什么,在获取过程中是否使用正确的编码设置了characterEncoding请求作为您正在做的第一件事?是的,@覆盖受保护的筛选器[]getServletFilters(){CharacterEncodingFilter CharacterEncodingFilter=new CharacterEncodingFilter();CharacterEncodingFilter.setEncoding(“UTF-8”);CharacterEncodingFilter.setForceEncoding(true);返回新筛选器[]{characterEncodingFilter};}