ListView似乎有UTF-8的问题

时间:2011-12-10 18:51:38

标签: .net listview utf-8

出于审美原因,我想在程序中用实际箭头字符->替换。它在任何地方都能很好地工作,除了在ListView项目中,箭头被空方块替换。

任何想法为什么?

代码(VB.Net,目标框架2.0):

Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim ListView1 As New System.Windows.Forms.ListView()
    Dim ColumnHeader1 As New System.Windows.Forms.ColumnHeader()
    Dim ColumnHeader2 As New System.Windows.Forms.ColumnHeader()
    Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"Arrow", "A → B"})


    ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {ColumnHeader1, ColumnHeader2})
    ListView1.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1})
    ListView1.Location = New System.Drawing.Point(12, 12)
    ListView1.Size = New System.Drawing.Size(205, 150)
    ListView1.View = System.Windows.Forms.View.Details

    Me.Controls.Add(ListView1)
End Sub
End Class

输出:

Code output

1 个答案:

答案 0 :(得分:2)

enter image description here

显然没有责备。在ListView的上下文中使用utf-8否则没有意义。 .NET字符串内部存储在utf-16中。

更新问题后:当字体没有显示代码点的字形时,会出现一个矩形。使用charmap.exe applet进行故障排除。并确保您确实正确地读取文件。使用调试器检查字符串。使用字符串的ToCharArray()方法查看单个字符代码。