【问题标题】:Set the NLS_LANG设置 NLS_LANG
【发布时间】:2019-08-25 03:57:17
【问题描述】:

我们有一个以AL32UTF8 作为字符集的数据库。我们的应用程序支持 EN、FR、DE 和 JP 语言。在每个版本中,我们都会在管理翻译的表中插入新标签。客户端的NLS_LANG应该是什么,以确保将法语特殊字符和日语正确插入数据库?

请注意,每个客户都有自己的数据库。 是否有任何自动方法来确保使用的 NLS_LANG 是好的? 我已经阅读了this article,但我不知道如何实现这一点。 谢谢, 比列尔

【问题讨论】:

    标签: oracle utf-8 nls-lang


    【解决方案1】:

    如果您必须处理日语和欧洲语言,那么 AL32UTF8(即 UTF-8)实际上是唯一有用的选项。

    链接的文章有一些缺陷,例如“...在Windows操作系统上,那么您不应该在NLS_LANG参数中将AL32UTF8设置为客户端字符集,因为没有UTF-8 WIN32客户端." 这是错误的,现在几乎每个 Windows 客户端都支持 UTF-8。您用来编写*sql 文件的每个文本编辑器都支持UTF-8,当您使用纯sql*Plus 时,一个简单的chcp 65001 命令使其成为UTF-8。只有来自 Microsoft 的古老和已弃用的驱动程序不支持 Unicode。

    请注意,当您设置例如 NLS_LANG=.AL32UTF8 值时,您会告诉 Oracle 数据库:“我的客户端应用程序使用字符集 AL32UTF8(又名 UTF-8)”——不多也不少。

    这并不意味着您的客户端应用程序真的使用 UTF-8,很多时候您必须在某些设置中明确指定它(但是有些应用程序和驱动程序会自动遵循 NLS_LANG 值)。

    更多信息请参见OdbcConnection returning Chinese Characters as "?"

    【讨论】:

      猜你喜欢
      • 2013-11-12
      • 1970-01-01
      • 2012-11-15
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多