Mam proste pytanie dotyczące napisu. Rozważmy następujący kod:Jakie jest domyślne kodowanie ciągu znaków w VB.NET?
Dim S1 as String = "abc"
Co to jest kodowanie dla S1? Czy to jest UTF-8 czy w zależności od lokalnego ustawienia Windows użytkownika?
Staje się istotny wcześniej. Spróbuj przykleić znak spoza BMP w ciągu znaków i wydobyć go przez adresowanie znaków z łańcucha. UTF-16 w .NET przecieka wszędzie, szczególnie w tym, że 'System.Char' ma szerokość 16 bitów i dlatego nie może zawierać wszystkich znaków (reprezentujących kod * jednostka *, a nie kod * punkt *). Jest to przeciwieństwo Pythona, w którym wewnętrzne kodowanie może być różne, ale masz gwarancję, że nie zauważysz użycia ciągów Unicode. W .NET zauważysz, jak tylko opuścisz BMP. – Joey
@Joey: Co to jest "BMP"? – Heinzi
Podstawowa płaszczyzna wielojęzyczna. To znaczy. pierwsze 65536 punktów kodowych Unicode, z których każdy może adresować znaki w jednej jednostce kodowej UTF-16. – Joey