如何在以下操作中更改我想要使用的代码页?
string foo = (string)sqlCommand.ExecuteScalar();
据我所知,我可以在String.Format(IFormatProvider, String)
内包装方法调用。那太棒了。
但是如何使用特定代码页构建IFormatProvider,以便我可以正确地从数据库中读取这些特定数据,该数据存储在与数据库文件其余部分不同的代码页中?
更多信息:
- 数据库是SQLite数据库
- 数据采用葡萄牙语
- 我正在添加到数据库外部的数据在我的应用程序上显示不正确
- 我通过我的应用程序添加的数据显示正确。
我认为我追溯到这样一个事实,我认为在通过我的应用程序进行操作时,我正在以UTF-8格式添加数据。我正在使用System.Data.SQLite提供程序,我可能会进一步调查如何更改此行为。无论如何,我现在想要读取从外部源插入数据库的数据,这些数据不是UTF-8格式。
答案 0 :(得分:1)
不,String.Format
(等)与客户端处理有关。如果你真的需要改变数据库处理文本数据的方式,我希望它是SQL语句的一部分,或者可能是连接字符串的一部分。 (您可能需要为这些特定查询使用不同的连接。)
在.NET本身中,所有文本数据都只是Unicode。说实话,我希望数据库能够知道发生了什么并自己处理差异......但是你没有详细说明你正在使用什么数据库或者如何使用数据库table对其他人使用不同的编码。