【问题标题】:Unicode characters in Listview c#Listview c#中的Unicode字符
【发布时间】:2017-12-06 18:19:09
【问题描述】:

事情是这样的: 我需要在我目前为一家友好公司构建的 SQL 操作数据库管理器中的列表视图中显示日语字符。试图谷歌,但所有的答案都让我一无所获。而不是显示字符它只是做“??????”。看看:

但我正在从安装了日语的机器上加载正确显示的 .csv 文件。它也被保存为utf8:

我使用的字体是 Meiryo UI。尝试过 Tahoma,同样的事情正在发生。正在加载,包括编码:

3

最后是负责将数据填充到列表视图中的代码:

4

如果有人可以帮助我,我将不胜感激。谢谢!

【问题讨论】:

  • 这里的其余图片:“[3]:i.stack.imgur.com/Ctpna.png”“[4]:i.stack.imgur.com/U9lNM.png
  • 这是 C# + XAML。服务器还为非 unicode 程序安装了日语,并且可以很好地查看这些 csv 文件。
  • imgur.com/4Sf02YA - 这是程序。我在哪里检查浏览器中的标题?我有点困惑。
  • 糟糕,XAML。对不起。尝试使用 StreamReader 选项 System.Text.Encoding.Default 而不是 utf-8 读取数据。
  • 现在试过了。不工作

标签: c# sql wpf listview unicode


【解决方案1】:

我设法解决了这个问题。在使用 SQL Server 2014 时,我只是忘记更改数据库设置中的排序规则编码。它设置为拉丁语而不是日语-Unicode BIN。感谢 Ben 为我指明了正确的方向。

Fixed

【讨论】:

    【解决方案2】:

    您正在使用流读取器打开文件,但您没有使用相同的流读取器来读取数据。相反,您正在指示 SQL 服务器使用 BULK INSERT 命令打开它。在 Sql 2012 SP2 之前,BULK INSERT 中不支持 UTF-8。

    如果您使用的是 Sql 2012 SP2 或更高版本,您可以在此处考虑 Tom-K 回答:

    否则,您必须在进行批量插入之前将文件转换为 UTF-16,或者使用其他方法。

    【讨论】:

    • 两种方法都失败,因为加载显示问号或乱码。我将尝试将 SQL Server 更改为较新的版本,看看会发生什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2011-05-15
    • 2013-06-20
    相关资源
    最近更新 更多