PostgreSQL 字符编码总结

栏目: 数据库 · 发布时间: 5年前

字符集可在 initdb、createdb、”create database” 时设定,每个数据库的字符集必须和 LC_CTYPE、LC_COLLATE 设置兼容,C 或 POSIX 区域兼容任意字符集,但其他区域只兼容一种字符集(在 Windows 上 UTF-8 编码可兼容任意区域)。

PostgreSQL 支持编码在服务端和前端之间的自动编码转换,也可以使用 SQL 命令创建一种编码转换。比如数据库使用了 EUC_JP 日文编码,但前端收到的是 UTF8 编码的数据,数据库内部会自动完成 UTF8 到 EUC_JP 的编码转换。

若数据库被设置为 SQL_ASCII 编码,字节值 [0, 127] 依据 ASCII 标准解释,[128, 255] 作为无法解析的字符,数据库不会做任何编码转换。也就是说,使用了非 ASCII 数据时,数据库不会转换编码,也不会校验非 ASCII 字符。

若客户端使用了 SQL_ASCII 编码发送 SQL 语句,那么数据库的自动编码转换会禁用,不管数据库的字符集是什么。

这种行为被允许但会被弃用:通过超级用户创建数据库,数据库编码为 SQL_ASCII,LC_CTYPE 不为 C 也不为 POSIX。

除非很明确地知道数据库内存入的数据都是 ASCII 数据,否则不建议将数据库编码设置为 SQL_ASCII ,也不建议客户端编码设置为 SQL_ASCII。

表格 Client/Server Character Set Conversions 显示了 PostgreSQL 支持的服务端/客户端的自动编码转换,比如数据库编码采用 EUC_JP,客户端可使用 EUC_JP、MULE_INTERNAL、SJIS、UTF8 编码,数据库内部就能够完成自动编码转换。若数据库采用 UTF8 编码,那么客户端使用任意编码都行。进一步地看,不管数据库使用什么编码,自动编码转换支持使用 UTF8 编码的客户端;不过有一个例外就是数据库采用 MULE_INTERNAL 编码,客户端使用 UTF8 时就无法做自动编码转换。

参考链接: Character Set Support

Advertisements


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

秩序之美

秩序之美

Vinh / 人民邮电 / 2011-5 / 35.00元

怎样才能设计出简洁大方而不落于俗套的超人气网站?纽约时报网站的资深设计师Khoi Vinh在这《秩序之美——网页中的网格设计》一书中将为你揭示其中的奥秘。   《秩序之美——网页中的网格设计》将源自传统平面设计、被众多平面设计大师推崇的网格设计方法应用于网页设计,向读者详细介绍了网格设计成熟而经典的设计模式,并以整个网站的设计为例,对工作流程、设计工具和方法进行了系统而全面的介绍,手把手教读......一起来看看 《秩序之美》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器