在数据库中编码sql命令

时间:2013-05-17 20:57:49

标签: sql database unicode encoding character-encoding

我想知道哪个实体负责执行编码转换,这是成功完成SQL命令的必要条件。例如:您有几个输出SQL命令的地方。

SELECT title from T1 where title='título'

这可以从数据库客户端(我假设它读取数据库编码并在此之后对其命令进行编码)中执行,但是当这是一个编码语言中的字符串,其字符串编码时会发生什么和数据库不一样吗?

转换发生的地方?在连接数据库的类中?数据库和连接器在握手时会达成某种协议吗?

我会喜欢有关此主题的一些信息或某些我可以阅读的链接。

提前致谢。

1 个答案:

答案 0 :(得分:1)

Case Java + MySQL

  • Java内部字符串是文本是Unicode编码的。
  • 在Java源文本中,文本应具有与java编译器相同的编码。编辑器和编译器之间的错误匹配会弄乱字符串文字。
  • Java因此将Unicode字符串传输到JDBC驱动程序,即数据库客户端库。
  • MySQL连接字符串可以指示在客户端库中使用哪种编码与数据库服务器通信。 useEncoding=UTF-8,所以Unicode,将是一个很好的国际选择。
  • 数据库可以设置默认编码。
  • 还有任何表格。
  • 同样按照每栏(比如印地语一栏中文)。

除了编码之外,整理(字符串的排序顺序)也是语言和编码特定的。还必须考虑。