我有一个PostgreSQL数据库。它有一个存储菜单项(标签)的表。这些菜单项以英语存储。有没有办法通过使用本地化功能将这些存储的项目(100+)转换为日语?因为我的客户框是UNIX,其语言环境设置为日语。
答案 0 :(得分:1)
在行之间阅读,我说你的数据库是iso-8869-1
或WIN1252
编码,这是英文语言的1字节编码。
如果是这样的话,虽然您可以转码为日语特定的编码,但它们大部分都非常有限 - 无论是英语(罗马)字符的覆盖范围,还是汉字/平假名的覆盖范围。日语在1字节编码中并不能很好地工作。 Shift-JIS试图解决这个问题,但它是一个糟糕的文本编码,PostgreSQL将拒绝使用它。
相反,将数据库转换为utf-8。这将支持您现有的所有内容和所有新内容。 UTF-8适用于任何语言。
这样做:
CREATE DATABASE mydb_new ENCODING 'UTF-8'
LC_COLLATE 'jp_JA.UTF-8' LC_CTYPE 'jp_JA.UTF-8';
然后pg_dump
旧数据库,pg_restore
到新数据库。之后,您可以重命名数据库以交换它们。
latin-1中的所有字符在utf-8中都有效,因此加载转储时不会出现问题。
您/您的客户可能需要生成/安装ja_JP.UTF-8
语言环境(如果在Linux / BSD上)。如何做到这一点有点特定于发行版/平台。