2015-04-03 99 views
0

我正在使用OleDbConnectionOleDbDataAdapter將.DBF讀入DataSet,並且存在編碼問題。OLEDB .dbf編碼

.DBF文件應該編碼爲UTF-8。在.DBF中,我們使用特殊字符(¬)作爲特定字段的分隔符。當我在該領域閱讀時,特殊角色作爲另一個角色出現(¼)。

我的連接字符串是Provider=Microsoft.Jet.OLEDB.4.0;Data Source=PATH_TO_DIRECTORY;Extended Properties="dBASE IV;charset=65001"。我嘗試了一些不同的charset值,例如utf820127,基於我在MSDN Code Page Identifier頁面和其他論壇帖子(我看到某人將utf8而不是數字)中找到的值。

我也嘗試將DataSet的Locale設置爲System.Globalization.CultureInfo.GetCultureInfo("en-US")

我無法將數據更改爲另一種格式,因爲.DBF是shapefile的一部分,我寧願不必執行查找/替換操作來修復字符串。我不能保留原來的值,因爲它會混淆對同一個.DBF的查詢。

我還沒有能夠糾正這個問題,我也沒有找到合適的論壇帖子OleDB編碼問題。這看起來純粹是OleDB問題,因爲其他驅動程序(更多的GIS導向)可以正確讀取此問題。我寧願不更換驅動程序,因爲程序的其餘部分使用OleDB

回答

0

你不能在連接字符串中使用UTF-8編碼 - 它只是不被支持。爲了能夠將UTF-8寫入DBF,您應該將源ANSI文本轉換爲UTF-8字符串,然後編寫它。反之亦然閱讀。