2

我想将阿拉伯语信息插入数据库,但总是得到这样的字符:ابو نص。我在我的页面中使用 UTF-8 编码,并将我的数据库设置为 utf8_general_ci。

我阅读了许多与此问题类似的问题,但我没有找到适合我的案例的解决方案。

这是一个解决方案,但使用 php,我不知道如何在 java 中做同样的事情。

插入代码 (通过 JdbcTemplate)

final String move_insert = "insert into r_movement (PPR,cd_fonc,nom_etabl,ville,delegation,date_debut,date_fin,nbjour,nbmois,nbannees,cina,cinn) "
               + "values (?,?,?,?,?,?,?,?,?,?,?,?)";

       getJdbcTemplate()
       .update(move_insert, new Object[] {move.getPpr(),move.getFonction(),move.getNom_etabl(),move.getVille(),move.getDelegation(),move.getDate_debut(),move.getDate_fin(),c.getNbjours(),c.getNbmois(),c.getNbyears(),move.getCina(),move.getCinn()});

这是我的桌子:

CREATE TABLE `r_movement` (
 `id_move` int(11) NOT NULL AUTO_INCREMENT,
 `PPR` int(11) NOT NULL,
 `cd_fonc` varchar(255) CHARACTER SET utf8 NOT NULL,
 `nom_etabl` varchar(255) CHARACTER SET utf8 NOT NULL,
 `ville` varchar(255) CHARACTER SET utf8 NOT NULL,
 `delegation` varchar(255) CHARACTER SET utf8 NOT NULL,
 `date_debut` date NOT NULL,
 `date_fin` date NOT NULL,
 `nbjour` int(255) NOT NULL,
 `nbmois` int(255) NOT NULL,
 `nbannees` int(255) NOT NULL,
 `CINA` varchar(255) CHARACTER SET utf8 NOT NULL,
 `CINN` varchar(255) CHARACTER SET utf8 NOT NULL,
 PRIMARY KEY (`id_move`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8
4

3 回答 3

3

我解决了 Finnaly 文件 web.xml 中配置丢失的问题!

<filter>
    <filter-name>encoding-filter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>utf-8</param-value>
    </init-param>
    <init-param>
      <param-name>forceEncoding</param-name>
      <param-value>true</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

我现在可以安全地将阿拉伯语数据插入数据库!谢谢

于 2013-06-03T12:13:07.810 回答
2

尝试按照文档中的说明在连接字符串中设置字符编码。例如

jdbc:mysql://localhost/some_db?useUnicode=yes&characterEncoding=UTF-8

您也可以将其设置为服务器配置。看文档。

于 2013-06-02T20:03:33.320 回答
0
于 2015-05-05T23:44:33.633 回答