使用数据集读取值取决于客户端操作系统上的特定语言字符

使用数据集读取值取决于客户端操作系统上的特定语言字符

问题描述:

我已经使用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"); 
+1

我不认为这个问题是与C#,因为.NET使用Unicode的所有字符串。区域设置也不会影响字符集。我猜测这与数据库有关,并建议您确保在SQL Server的所有文本字段中使用'nvarchar','nchar'和'ntext'。如果问题出在DBF方面,那么修复可能会更困难。 – Sven

+0

但是在我自己的计算机上运行应用程序(瑞典语)时,一切正常完成 – Andreas

+0

即时通讯使用StringBuilder生成sql插入查询,可以使用本地计算机区域设置吗? – Andreas

好舒服,所以我还挺固定它自己,不是最好的方式,但它会为我工作。

因为我会运行,如果在英文操作系统计算机上我做了功能,将所有奇怪的字符改为瑞典的。

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(); 
} 

,直到我找到一个方法来做到这一点不同生病坚持下去。