2016-06-01 134 views
-1

的我需要正確編碼字符串:正確編碼字符串

string Nazev="TriŔko Chevak"; 

我需要這樣的:

string Nazev="Tričko Chevak"; 

我嘗試這一點,但沒有改變:

Encoding win = Encoding.GetEncoding(1250); 
Encoding z = Encoding.Default; 
byte[] zBytes = z.GetBytes(Nazev); 
byte[] isoBytes = Encoding.Convert(z, win, zBytes); 
Nazev = win.GetString(isoBytes); 

有你有任何想法嗎?

我打開* .dbf文件和負載值數據表:

string constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(NovyNazevCSV) + ";Extended Properties=\"dBASE IV;Text;CharacterSet=1250;\""; 
      using (OleDbConnection con = new OleDbConnection(constr)) 
      { 
       var sql = "select * from " + Path.GetFileName(NovyNazevCSV); 
       OleDbCommand cmd = new OleDbCommand(sql, con); 
       con.Open(); 
       OleDbDataAdapter da = new OleDbDataAdapter(cmd); 
       da.Fill(dtBush); 
      } 
foreach (DataRow radekBush in dtBush.Rows) 
{ 
Nazev = radekBush[3].ToString(); 
} 

在文件中我有: Tričko但在數據表中我有TriŔko...

+0

你想在這裏實現什麼?是否有錯誤訊息?如果在你的問題中包括這一點。 –

+1

對於不習慣於當地人的人,你能解釋爲什麼你會期望轉換嗎?我個人從未見過Ŕ與č相同。 – Default

+0

你爲什麼認爲字符串編碼不正確? .NET使用支持這些字符的UTF-16。 –

回答

0

Encoding.Default將返回默認ANSI編碼,嘗試使用UTF-8編碼來代替:

... 
Encoding z = Encoding.UTF8; 
... 

你也可能需要在連接字符串中使用CharacterSet=65001嘗試。

+0

我嘗試這個,但仍然是:/ – Koky