如何用英语以外的其他语言存储文本?

时间:2015-07-08 13:39:02

标签: java sql sql-server hibernate

在我的项目中,我想将泰米尔语字符存储在数据库中。所以我使用数据类型nvarchar(50)创建了该列。

Hibernate将nvarchar转换为可序列化。如何设置此列的值?

有人可以帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

我想你必须通过扩展映射到数据类型的SQLServerDialect来编写自定义方言。

public class CustomSQLServerDialect extends SQLServerDialect {

public CustomSQLServerDialect() {
    super();

    // Use Unicode Characters
    registerColumnType(Types.VARCHAR, "nvarchar($l)");        
  }
}

答案 1 :(得分:0)

Madhesh,为了在数据库的任何字段中包含其他语言字符,您不必担心类型本身,但您需要检查字段或表格甚至数据库本身的编码正在使用(整理)。

最常见的是utf8_general_ci:

Which is the best character encoding for Japanese language for DB, php, and html display?

我相信您可以通过用于访问和修改数据库的工具来更改这些排序规则。以下是有关字符编码和排序规则的更详细解答:

What does character set and collation mean exactly?

然而,泰米尔语似乎是一种特殊情况,如果UTF-8编码不够,还有一个open-tamil project for Tamil text processing in Github可能对您有所帮助。