Postgresql:本地化支持
本地化:指有关字符、排序、数字格式、货币符号等等的文化偏好
postgresql通过两个途径提供本地化支持:
- 1。通过所使用的os获取本地化偏好
- initdb.exe 或自动从操作系统的环境中获取本地化信息,如果获取失败,postgressql使用默认的通用的C设置
- initdb.exe当然你可以使用--local=loacl_set来指定本地化规则;
- initdb.exe也允许你指定下面将要提到的具体本地化细节参数进行详细的细节设置
- 2。提供几个本地化设置参数定制每个细节方面
- lc_collate:排序规则
- lc_ctype:字符集
- lc_numeric:数字格式
- lc_time:日期时间格式
- lc_monetary:货币格式
- lc_messages:消息语言
本地化设置影响以下方面:
- 根据文本数据排序 order by
- like 查找
- upper、lower、initcap字符函数
- to_char系列数据转换函数
- 注意:本地化是有代价的。会影响性能,同时减慢字符数据处理,组织like 使用普通索引
普通、普遍、难点、卖点的字符集支持问题
任何一个应用程序想要在全球成功,支持不同的本地化的字符集是不可回避的问题。postgresql支持大量的字符集(编码),结构上分为三个层次:server、转换函数、client。
- server端的默认字符集编码是在使用initdb.exe初始化时确定的 --注意euc_cn就是简体中文字符集。而gb18030 和 gbk=windows936 是仅仅可以用在客户端的字符集
- 转换函数postgresql预制了很多,可以通过create conversion增加自己的转换函数 --需要注意server 和 client的可用性问题(字符集兼容问题)
- client端的设置
- set client_encoding to character_set_name
- set names character_set_name
- psql.exe使用\encoding character_set_name
- 调用libpq的库的程序:调用客户端字符集编码设置函数
- 使用配置文件选项:client_encoding
- 使用os环境变量指定:PGCLENTENCODING
分类:
Postgres
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)