Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net ListView似乎在UTF-8方面有问题_.net_Listview_Utf 8 - Fatal编程技术网

.net ListView似乎在UTF-8方面有问题

.net ListView似乎在UTF-8方面有问题,.net,listview,utf-8,.net,Listview,Utf 8,出于美观的考虑,我想用实际的箭头字符(→)。它在任何地方都能正常工作,除了在列表视图项中,箭头被一个空正方形代替 你知道为什么吗 代码(VB.Net,目标框架2.0): 输出: 很明显,没有责备。在ListView的上下文中使用utf-8是没有意义的。NET字符串内部存储在utf-16中 问题更新后:当字体没有用于显示代码点的图示符时,将显示一个矩形。使用charmap.exe小程序进行故障排除。并确保您确实正确读取了文件。使用调试器检查字符串。使用字符串的tocharray()方法查看单个字

出于美观的考虑,我想用实际的箭头字符(
)。它在任何地方都能正常工作,除了在
列表视图
项中,箭头被一个空正方形代替

你知道为什么吗

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

很明显,没有责备。在ListView的上下文中使用utf-8是没有意义的。NET字符串内部存储在utf-16中


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

如何将字符添加到字符串中?显示代码。我添加了一个MWE。在一个简单的
标签
中加载相同的文本时没有问题,无论我选择哪种字体,都会发生这种情况。我添加了一个MWE,它不会从外部文件加载字符串。好的,按照解释,追逐字体角度。是的,但是在其他控件中使用相同的字体没有问题(
标签
,…)。由于某种原因,所有非ASCII字符(如中文字符)都会出现相同的问题,我现在似乎无法重现此问题…:/
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