编辑:来自 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>
当我转储查询结果时,我可以看到查询本身采用了非罗马语言的正确字符,但由于某种原因,它们没有以这种方式插入到数据库中。