使用数据集读取值取决于客户端操作系统上的特定语言字符
问题描述:
我已经使用C#创建了一个Windows应用程序,该应用程序使用OleDBConnection从Dbase数据库文件创建数据集。使用数据集读取值取决于客户端操作系统上的特定语言字符
我的问题是,这对我自己的计算机(瑞典语)运行得很好,但是当我在我的服务器上运行这个(英语)瑞典语字母(å,ä,Å,Ä,Ä,Ö)会搞砸。
我已经试过这没有运气:
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("sv-SE");
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("sv-SE");
答
好舒服,所以我还挺固定它自己,不是最好的方式,但它会为我工作。
因为我会运行,如果在英文操作系统计算机上我做了功能,将所有奇怪的字符改为瑞典的。
public string changeSpecialCharacters(string kund)
{
StringBuilder b = new StringBuilder(kund);
b = b.Replace("σ", "å");
b = b.Replace("┼", "Å");
b = b.Replace("Σ", "ä");
b = b.Replace("─", "Ä");
b = b.Replace("÷", "ö");
b = b.Replace("╓", "Ö");
return b.ToString();
}
,直到我找到一个方法来做到这一点不同生病坚持下去。
我不认为这个问题是与C#,因为.NET使用Unicode的所有字符串。区域设置也不会影响字符集。我猜测这与数据库有关,并建议您确保在SQL Server的所有文本字段中使用'nvarchar','nchar'和'ntext'。如果问题出在DBF方面,那么修复可能会更困难。 – Sven
但是在我自己的计算机上运行应用程序(瑞典语)时,一切正常完成 – Andreas
即时通讯使用StringBuilder生成sql插入查询,可以使用本地计算机区域设置吗? – Andreas