1

编辑:来自 Sharondio 的修复:是否在 cfadmin 数据源高级设置中检查了“--为配置为非拉丁字符的数据源启用高 ASCII 字符和 Unicode”设置?完整的路径是 CFAdmin --> Data & Services --> Datasources --> 点击您的数据源 --> 点击 Show Advanced Settings --> 勾选上述框。

我正在尝试创建一个批量导入页面(在 Coldfusion 中),该页面将接收 CSV 文件并将数据插入 SQL Server 数据库。CSV 文件可以包含多种语言的数据,包括不使用罗马字符的语言,例如中文、韩语、印地语和泰语。

当我运行导入时,任何带有非罗马字符的内容都会在 SQL Server Management Studio 中显示为一串问号,并且尝试在我的 Coldfusion 应用程序中输出数据时也会显示问号。先前输入的阿拉伯语数据在网站和管理工作室中正确显示,因此它看起来不像我的网站或数据库上的编码问题。

我尝试了 UTF-8 和 UTF-16 编码的 CSV 文件(在 Excel 和记事本中创建),但都没有成功。我正在使用 SQL Server 2000;排序规则设置为 SQL_Latin1_General_CP1_CI_AS。我要插入的列是 ntext。

经过一番阅读,我尝试修改我的插入语句以在插入的字符串之前有 N 个字符(即插入 table_blah(列)值(N'stuff')),但这也没有什么区别。

在这一点上,我正在寻找任何人都可以提供的任何提示或指导。谢谢。

编辑@Jake Feasel

我试图插入的表:

ID             int
Language_ID    int
Value          ntext

就我要插入的内容而言,它是以下格式的 CSV:

English    French      Chinese    Hindi    Thai      German
Course     cours       课程        कोर्स      หลักสูตร    Kurs
Student    étudiant    学生        छात्र      นักเรียน     Schüler

通过 Coldfusion 查询将其插入数据库(循环导入的 CSV 并插入适当的语言 ID 值和翻译值):

<cfquery name="insert_values" datasource="#APPLICATION.DSN#">
    INSERT INTO tbl_language_value (Language_ID, Value)
    VALUES (
    <cfqueryparam cfsqltype="cf_sql_integer" value="3" />,
    <cfqueryparam cfsqltype="cf_sql_varchar" value="นักเรียน" 
    )
SELECT SCOPE_IDENTITY() AS 'New_ID';
</cfquery>

当我转储查询结果时,我可以看到查询本身采用了非罗马语言的正确字符,但由于某种原因,它们没有以这种方式插入到数据库中。

4

1 回答 1

0

如果您使用的是 CF10 之前的 ColdFusion 版本,则需要String format在您正在使用的数据库的 ColdFusion 管理员数据源设置中启用。

如果您使用的是 ColdFusion 10,那么您需要注意这个关于 ColdFusion 10 更改的问题的结果。

于 2012-05-30T13:49:12.953 回答