【发布时间】:2023-03-08 19:03:01
【问题描述】:
有没有办法可以在我的 postgres 数据库中存储 ñ 或 Ñ 字符,数据库是 SQL_ASCII...
我所做的是插入“ñ”并在数据库中保存为“ñ”,输出仍然是“ñ”,这很好。但我想要的是在数据库中插入“ñ”。
我的问题是某些应用程序输出“ñ”,例如 ateila 或 Crystal 报告。
各位有什么想法吗?
【问题讨论】:
标签: php postgresql
有没有办法可以在我的 postgres 数据库中存储 ñ 或 Ñ 字符,数据库是 SQL_ASCII...
我所做的是插入“ñ”并在数据库中保存为“ñ”,输出仍然是“ñ”,这很好。但我想要的是在数据库中插入“ñ”。
我的问题是某些应用程序输出“ñ”,例如 ateila 或 Crystal 报告。
各位有什么想法吗?
【问题讨论】:
标签: php postgresql
将其转换为 UTF-8 并试一试,它应该可以工作。 查看此question 了解更多信息:
【讨论】:
SQL_ASCII 不是 ASCII;这是一个愚蠢的名字选择。真正的意思是“没有固定的编码,只是按原样存储我发送给你的字节字符串而不试图理解它们”。
SQL_ASCII 通常是个坏主意。考虑将您的数据库转换为 UTF-8。这很难做到,因为您的数据库将充满编码错误的数据,但它会为您省去很多麻烦。
SQL_ASCII DB 可以很好地存储非 ASCII 字符。您的应用程序只需要都期望相同的编码,并且始终始终如一地转换为该编码/从该编码转换。 client_encoding 被忽略。在您的应用程序中,您必须始终确保将从外部来源获得的文本转换为该编码,并将数据库中的数据转换为外部接收者期望的编码。 SQL_ASCII 的主要问题是数据库不会检查以确保您做对了。它不会为您转换,也不会验证数据是否与client_encoding 匹配。没有元数据可以告诉客户您正在使用什么编码。
更改为UTF-8。
【讨论】: