2010-06-29 8 views

Antwort

12

Die Sprache C# unterstützt dies mit Fluchten:

var str = "\u0030More text"; 

Aber das ist in VB.NET nicht verfügbar. Beachten Sie, dass Sie mit ziemlicher Sicherheit nicht wollen Chr() verwenden, das ist für die Legacy-Code zu verstehen, die mit der Standardcodepage funktioniert. Sie werden ChrW() wollen und den Unicode-Codepunkt übergeben.

Ihr spezifisches Beispiel ist kein Problem, & H0030 ist der Code für "0", also können Sie es einfach direkt in das String-Literal setzen.

Sie können das Charmap.exe-Dienstprogramm verwenden, um Glyphen zu kopieren und einzufügen, die keinen einfachen ASCII-Code haben.

+0

\ u0030 ist ein einfaches 0 - 0 hat den Wert 48, der auf 0x30 entspricht, die der angeforderten Codepunkt ist, da diese Fluchten in hexadezimal geschrieben werden. Sie dachten wahrscheinlich an * decimal * 30, \ u001e, was laut http://www.unicode.org/charts/PDF/U0000.pdf ein Steuerzeichen namens Record Separator (oder INFORMATION SEPARATOR TWO in Unicode) ist. . (Es * existiert * als Codepunkt, aber es hat keine Glyphe, da es ein nicht druckbares Zeichen sein soll.) –

+0

Hoppla, du hast Recht. Beitrag aktualisiert. –

+1

+1: um den Leser über das Dienstprogramm * Character Map * (charmap.exe) zu informieren.Toller Tipp, den ich die ganze Zeit nutze. – AMissico

23

Verwenden Sie die ChrW() Funktion Unicode-Zeichen zurückzukehren.

Dim strW As String 
strW = ChrW(&H25B2) & "More text" 
1

Ich benutze das Character Map Dienstprogramm (charmap.exe). Führen Sie ein und wählen Sie die angezeigten Zeichen in der Kontrolle der Schriftart wie © Missico ™, kopieren und fügen Sie in die Text Eigenschaft im Eigenschaftenraster wollen. Sie müssen die Schriftart ändern, da die Standardschrift für ein Formular "Microsoft Sans Serif" ist, die keine Unicode-Schriftart ist. Ich denke nicht, dass Sie diese Methode für nicht druckbare Zeichen verwenden können.

Je nach Bedarf können Sie auch Lokalisierung verwenden, die für jede Sprachressourcendateien erstellt. Auch hier würden Sie charapap.exe verwenden, um die benötigten Zeichen auszuwählen und zu kopieren und in die Ressourcendatei einzufügen. Sie können möglicherweise nicht druckbare Zeichen wie Tabulatoren, Zeilenumbrüche usw. verwenden, da dies nur eine Textdatei (Unicode) ist.

+0

Das löst das Problem nicht, wenn die Codedatei in einen Zeichensatz geschrieben wird, der diese Zeichen nicht unterstützt - und könnte Probleme verursachen, wenn die Schriftart Ihres Editors nicht alle Unicode-Zeichen unterstützt. Keine gute Lösung! –

+1

Aber es * ist * die beste Lösung, wenn die Datei in einer Unicode-Codierung geschrieben wird (wie alle modernen Textdateien sein sollten) und wenn die Schriftart die Zeichen unterstützt. – Philipp

0

Ich hatte gehofft, dass Sie XML-Literale und XML entkommt verwenden könnte, aber es funktioniert nicht. Ich glaube nicht, XML-Literale können Sie &#NN; verwenden. Obwohl it is a way von Zitaten " innerhalb von Zeichenketten enthält.

'Does not compile :(' 
Dim myString = _ 
<q>This string would contain an escaped character &#30; if it actually compiled.</q>.Value 
0

Nein, das ist nicht möglich, da VB-Strings keine Escape-Sequenzen unterstützen. Verwenden Sie einfach ChrW, was ein paar Zeichen mehr ist, aber auch etwas sauberer.

+0

Es ist nicht so, dass es mehr tippt, dass es nicht im Formular-Designer gemacht werden kann und es ist mühsamer, ein Formular zu entwerfen, wenn Sie es jedes Mal ausführen müssen, wenn Sie es sehen wollen. – CodeFusionMobile

4

Ersetzen Chr mit Convert.ToChar:

str = Convert.ToChar(&H0030) & "More text"