在数据库中编码sql命令



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

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

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

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

我想知道一些关于这个话题的信息,或者一些我可以读到的链接。

Case Java + MySQL

  • 在Java内部字符串是文本是Unicode编码。
  • Java源文本中的
  • 应该与Java编译器使用的编码相同。编辑器和编译器之间的错误匹配会使字符串字面量混乱。
  • Java将Unicode字符串传输到JDBC驱动程序,即数据库客户端库。
  • MySQL连接字符串可以指示在客户端库中使用哪种编码来与数据库服务器通信。useEncoding=UTF-8,所以Unicode将是一个很好的国际选择。
  • 数据库可以设置默认编码。
  • 每个栏目也一样(一个是印度文,一个是中文)。

除了编码之外,排序(字符串的排序顺序)也是特定于语言和编码的。

最新更新