编辑:从Sharondio修复:在cfadmin数据源高级设置中选中“ - 为非拉丁字符配置的数据源启用高位ASCII字符和Unicode”设置吗?完整路径是CFAdmin - >数据&服务 - >数据源 - >点击您的数据源 - >点击显示高级设置 - >选中上面指出的方框。
我正在尝试创建批量导入页面(在Coldfusion中),该页面将接收CSV文件并将数据插入SQL Server数据库。 CSV文件可以包含多种语言的数据,包括不使用罗马字符的语言,如中文,韩文,印地文和泰文。
当我运行导入时,任何带有非罗马字符的内容都会在SQL Server Management Studio中显示为一串问号,并且尝试在我的Coldfusion应用程序中输出数据也会显示问号。以前输入的阿拉伯数据在网站和管理工作室中正确显示,因此它看起来不像我的网站或数据库上的编码问题。
我尝试过UTF-8和UTF-16编码的CSV文件(在Excel和记事本中创建),但都没有用。我正在使用SQL Server 2000; collation设置为SQL_Latin1_General_CP1_CI_AS。我插入的列是ntext。
经过一些阅读后,我尝试修改我的insert语句,使其在插入字符串之前具有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>
当我转储查询结果时,我可以看到查询本身正在为非罗马语言使用正确的字符,但由于某种原因,它们没有以这种方式插入到数据库中。
答案 0 :(得分:0)
如果您在CF10之前使用的是ColdFusion版本,则需要在您正在使用的数据库的ColdFusion Adminintrator数据源设置中启用String format
。
如果您使用的是ColdFusion 10,那么您需要注意此question about the changes in ColdFusion 10的结果。