0

我想知道哪个实体负责进行成功完成 SQL 命令所需的编码转换。例如:您有几个地方输出 SQL 命令。

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

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

转换发生在哪里?在连接到数据库的类中?数据库和连接器在握手时做某种协议?

我会喜欢关于这个主题的一些信息或一些我可以阅读它的链接。

提前致谢。

4

1 回答 1

1

案例 Java + MySQL

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

除了编码之外,排序规则(字符串的排序顺序)也是特定于语言和编码的。并且也必须考虑。

于 2013-05-17T21:21:21.300 回答