在mysql中写波斯语或阿拉伯语字母

时间:2016-05-19 13:06:06

标签: java mysql hibernate

我是java的新手,我正在尝试做一个简单的项目来熟悉它。

所以,我正在开发一个动态的Web应用程序,我使用tomcat作为服务器,MySQL使用hibernate提供程序。

我希望能够在我的表格中编写波斯语或阿拉伯语字母。但不幸的是我不能。

我已经为我的数据库表编写了这个查询:

 DROP DATABASE IF EXISTS myDb;
 CREATE DATABASE myDb CHARSET = utf8 COLLATE = utf8_general_ci;
 USE myDb;

 drop table if exists user;
 drop table if exists resume;


create table resume(
    resumeId INTEGER NOT NULL AUTO_INCREMENT,
    resumeDescription NVARCHAR(255),
    PRIMARY KEY (resumeId)
) charset = utf8; 

create table user(
    userId INTEGER NOT NULL AUTO_INCREMENT,
    username NVARCHAR(40) NOT NULL,
    password varchar(20) NOT NULL,
    email varchar(50) NOT NULL,
    resumeId INTEGER UNIQUE,
    PRIMARY KEY (userId),
    FOREIGN KEY (resumeId) REFERENCES resume(resumeId)
) charset = utf8;

我试图插入波斯语字母。我已经创建了一个表单并为其创建了一个servlet来处理请求。我从请求中获取了参数并对其进行了测试。那一刻他们没事,他们得到了正确的表现。但当我将它们插入数据库时​​,我面对这个:

(问号是波斯语字母)

enter image description here

我不知道该怎么做,问题是什么。 我在互联网上搜索过这个问题并测试了不同的方法,但没有一个在我的情况下工作。

任何人都可以帮我在mySql数据库中正确编写波斯语字母吗?

顺便说一下我的连接网址是这样的:

jdbc:mysql://localhost:3306/myDb?zeroDateTimeBehavior=convertToNull

1 个答案:

答案 0 :(得分:0)

尝试使用以下连接网址:

jdbc:mysql://localhost:3306/myDb?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8

这会强制驱动程序使用UTF-8。