C# asp.net配置文件表和德语字符
关于使用asp.net在SQL中的配置文件表中存储特殊字符(umlauts、德语字符等),我有一个问题 我们通过表单提交将这些信息输入到另一个数据库中,我们发现当这些字段到达最终数据库时,一些字符(如öorä等)作为ascii码输入,如C# asp.net配置文件表和德语字符,c#,asp.net,oracle,encoding,special-characters,C#,Asp.net,Oracle,Encoding,Special Characters,关于使用asp.net在SQL中的配置文件表中存储特殊字符(umlauts、德语字符等),我有一个问题 我们通过表单提交将这些信息输入到另一个数据库中,我们发现当这些字段到达最终数据库时,一些字符(如öorä等)作为ascii码输入,如ä和ö 我回过头来查看aspnet_Profile表并查找源数据,发现字符以这种方式存储在数据库中 我的问题是。有没有办法在sql server中将这些字符存储为ö或ä,或者当我将它们从配置文件中拉出以显示在网页上并插入到最终数据库(即Oracle
ä代码>和ö代码>
我回过头来查看aspnet_Profile表并查找源数据,发现字符以这种方式存储在数据库中
我的问题是。有没有办法在sql server中将这些字符存储为ö或ä,或者当我将它们从配置文件中拉出以显示在网页上并插入到最终数据库(即Oracle并可以处理这些字符)时,是否需要对其进行编码/解码(哪种?)
如果我必须对概要文件表中的每个字段进行编码/解码,那么我是否在向概要文件提交数据时进行编码/解码?或者,当我从配置文件中检索数据以将网站/记录插入Oracle时
对不起,如果这是一个新手问题,但我是一个新手 问题在于,如果您直接构建SQL,而不是使用参数传递值
如果生成的INSERT语句类似于:
string cmd = string.Format("INSERT INTO FOO (col) VALUES ({0})", value);
Oracle可能没有意识到您正在传入Unicode字符串并对其进行转义。这也会让您面临潜在的SQL注入黑客攻击,但这是另一回事
您需要为传入数据库的任何值使用参数。例如:
using (var conn = new OracleConnection(connectionString)) {
using (var command = new OracleCommand("INSERT INTO FOO (col) VALUES (?)")) {
command.Connection = conn;
command.Parameters.AddWithValue("?", value);
command.ExecuteNonQuery();
}
}
检查数据库的编码。可以直接在SQL编辑器中保存这些字符吗?