【发布时间】:2016-09-30 10:17:39
【问题描述】:
我需要正确编码字符串:
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...
【问题讨论】:
-
你想在这里实现什么?有错误信息吗?如果是这样,请将其包含在您的问题中。
-
对于不习惯这种本地化的人,您能解释一下为什么您会期望这种转换吗?我个人从未见过 Ŕ 与 č 的意思相同。
-
为什么您认为该字符串未正确编码? .NET 使用支持这些字符的 UTF-16。
-
我编辑了第一篇文章...
-
字节和字符串之间的编码和解码转换(编码是字符串到字节,解码是字节到字符串)。您已经将它作为字符串保存的事实表明它已经被解码。根据选择的编码,解码可能是一个有损过程。您应该返回生成原始文本的任何内容,并确保它输出正确的字节,而不是在将其作为字符串时尝试修复它。