gpt4 book ai didi

coldfusion - 使用 ColdFusion 显示来自 AS/400 服务器的中文字符

转载 作者:行者123 更新时间:2023-12-01 11:20:43 25 4
gpt4 key购买 nike

我正在编写一个 ColdFusion 程序,它使用 cfquery 从 AS/400 iSeries 表中获取数据,然后将该数据输出到网页。有时数据是中文的,但它没有正确输出汉字。

我构建了下面的查询以进行测试,

<cfprocessingdirective pageEncoding="UTF-8" />
<cfquery name="Test" Datasource = "AS400">
select dsc1 from sales where ref = '123456'
</cfquery>

<cfoutput>#test.dsc1#</cfoutput>

结果应该是“M5方头螺柱”,但我只得到“M5”。我做了另一个测试:

<cfset x = "M5方头螺栓"/>
<cfoutput>#x#</cfoutput>

显示中文没问题。

由于 ColdFusion 可以在代码中写出字符时显示字符,但在通过 SQL 获取数据时不能显示字符,因此问题似乎出在我的 ODBC 设置或我的 ColdFusion 服务器数据源设置上,但我我对这些设置不够熟悉,不知道需要更改什么才能使其正常工作。

最佳答案

在评论中找到并讨论了解决方法。在此处添加一些详细信息作为此页面 future 访问者的答案。

处理 Unicode(中文)字符时有几个注意事项:

  • 数据库表的数据类型必须设置为 nvarchar
  • 表单处理脚本 (CFML) 必须设置为 utf-8
    • 我相信 ColdFusion 默认为此设置,但您可以指定设置以确保确定。
      例如:<cfprocessingDirective pageEncoding=”utf-8″>
  • 在 ColdFusion 数据源设置中启用“字符串格式”
    • 在 ColdFusion 管理员数据源设置下,选择您正在使用的适当数据源。然后单击“显示高级设置”按钮。这将显示“字符串格式”选项为为非拉丁字符配置的数据源启用高 ASCII 字符和 Unicode。选择此选项并保存数据源。

OP 的问题是他们使用的是 ODBC 数据源并且“字符串格式”选项不可用。经过一些研究并且找不到任何方法来为该设置配置 ODBC 数据源后,我建议尝试使用 ColdFusion 附带的“DB2 通用数据库”的内置 JDBC 驱动程序。切换到该驱动程序解决了 OP 的这个问题。

来自评论

很好的信息。尽管在 CF10+ 中添加了对 cf_sql_nvarchar 的支持,“启用字符串格式...”是必要的吗? – @Leigh

我相信 Leigh 是正确的,新版本的 ColdFusion(10 及更高版本)对 nvarchar 字段有更好的支持。

另请注意,某些旧版本的 ColdFusion 似乎并不总是与已安装的 DB2 通用驱动程序一起工作,而且看起来旧的标准版本甚至没有它,我不确定如果较新的也有,但使用 jt400.jar 的“其他”选项,也应该有效。 - @MHall

关于coldfusion - 使用 ColdFusion 显示来自 AS/400 服务器的中文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43987213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com