【问题标题】:Storing and retrieving ñ Ñ characters as is按原样存储和检索 ñ Ñ 字符
【发布时间】:2023-03-08 19:03:01
【问题描述】:

有没有办法可以在我的 postgres 数据库中存储 ñ 或 Ñ 字符,数据库是 SQL_ASCII...

我所做的是插入“ñ”并在数据库中保存为“ñ”,输出仍然是“ñ”,这很好。但我想要的是在数据库中插入“ñ”。

我的问题是某些应用程序输出“ñ”,例如 ateila 或 Crystal 报告。

各位有什么想法吗?

【问题讨论】:

    标签: php postgresql


    【解决方案1】:

    将其转换为 UTF-8 并试一试,它应该可以工作。 查看此question 了解更多信息:

    【讨论】:

    • ASCII 字符编码并非旨在表示英语以外的字符/字形/符号。
    • @titanofold SQL_ASCII 不是 ASCII;这是一个愚蠢的名字选择。真正的意思是“没有固定的编码,只是按原样存储我发送给你的字节字符串而不试图理解它们”。
    【解决方案2】:

    SQL_ASCII 通常是个坏主意。考虑将您的数据库转换为 UTF-8。这很难做到,因为您的数据库将充满编码错误的数据,但它会为您省去很多麻烦。

    SQL_ASCII DB 可以很好地存储非 ASCII 字符。您的应用程序只需要都期望相同的编码,并且始终始终如一地转换为该编码/从该编码转换。 client_encoding 被忽略。在您的应用程序中,您必须始终确保将从外部来源获得的文本转换为该编码,并将数据库中的数据转换为外部接收者期望的编码。 SQL_ASCII 的主要问题是数据库不会检查以确保您做对了。它不会为您转换,也不会验证数据是否与client_encoding 匹配。没有元数据可以告诉客户您正在使用什么编码。

    更改为UTF-8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-08
      • 2019-01-19
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      • 2016-07-06
      相关资源
      最近更新 更多