ich bin gerade etwas verwundert, bzw. stellen sich mir einige Fragen, wie PureBasic mit Zeichen über FFFF umgeht.
Da der Ascii-Support eingestellt wurde, wollte ich mal in die andere Richtung blicken.
Die folgenden Zeichen gehören zu Mathematical Alphanumeric Symbols (1D400—1D7FF).
In PureBasic werden diese Zeichen auch korrekt dargestellt, wenn die als String definiert werden:
Code: Alles auswählen
Enumeration
#Window
#Gadget
#Font
EndEnumeration
OpenWindow(#Window, 0, 0, 800, 600, "WindowTitle", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
CanvasGadget(#Gadget, 0, 0, WindowWidth(#Window), WindowHeight(#Window))
LoadFont(#Font, "Cambria Math", 20)
Define String.s = PeekS(?String)
ShowMemoryViewer(@String, StringByteLength(String))
If StartVectorDrawing(CanvasVectorOutput(#Gadget))
VectorFont(FontID(#Font), 40)
DrawVectorText(String)
StopVectorDrawing()
EndIf
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
DataSection
String:
Data.l -581773259, -581707723, -581642187, -581576651, -581511115, -581445579, -581380043, -581314507
Data.l -581248971, -581183435, -581117899, -581052363, -580986827, -580921291, -580855755, -580790219
Data.l -580724683, -580659147, -580593611, -580528075, -580462539, -580397003, -580331467, -580265931
Data.l -580200395, -580134859, 0
EndDataSection
Allerdings scheinen das nicht alle Funktionen mit zu machen:
Code: Alles auswählen
Define String.s = PeekS(?String)
Debug "Länge: "+Str(Len(String))+" (ich hätte hier 26 erwartet)"
Debug "Bytes: "+Str(StringByteLength(String))+" (richtig)"
Debug "Nummer: "+Hex(Asc(PeekS(?String, 4)))+" (sollte 1D552 sein oder zumindest DD52D835, was ja UTF-16 LE wäre)"
DataSection
String:
Data.l -581773259, -581707723, -581642187, -581576651, -581511115, -581445579, -581380043, -581314507
Data.l -581248971, -581183435, -581117899, -581052363, -580986827, -580921291, -580855755, -580790219
Data.l -580724683, -580659147, -580593611, -580528075, -580462539, -580397003, -580331467, -580265931
Data.l -580200395, -580134859, 0
EndDataSection
Kann mir hier vielleicht weitere Informationen geben?