Кажется, что ListView имеет проблемы с UTF-8 - PullRequest
0 голосов
/ 10 декабря 2011

По эстетическим соображениям я хотел бы заменить -> в моей программе настоящими символами стрелок ().Он отлично работает везде, кроме ListView элементов, где стрелка заменяется пустым квадратом.

Есть идеи, почему?

Код (VB.Net, таргетинг Framework 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 Ответ

2 голосов
/ 10 декабря 2011

enter image description here

Нет, очевидно, без воспроизведения.Работа с utf-8 в контексте ListView в противном случае не имеет смысла.Строки .NET хранятся внутри в utf-16.

После обновления вопроса: прямоугольник появляется, когда у шрифта нет глифа для отображения кодовой точки.Устраните неполадки с помощью апплета charmap.exe.И убедитесь, что вы действительно правильно читаете файл.Используйте отладчик для проверки строки.Используйте строковый метод ToCharArray () для просмотра отдельных кодов символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...