2010-06-29 91 views

回答

12

C#語言支持這跟轉義:

var str = "\u0030More text"; 

但不可用在VB.NET。請注意,您幾乎可以肯定不需要想要使用Chr(),這是爲遺留代碼使用默認代碼頁。您需要ChrW()並傳遞Unicode碼位。

你具體的例子不是問題,& H0030是「0」的代碼,所以你可以簡單地把它直接放在字符串文字中。

Dim str As String = "0MoreText" 

您可以使用Charmap.exe實用程序來複制和粘貼沒有簡單ASCII代碼的字形。

+0

\ u0030是一個普通的0 - 0具有值48,其等於的0x30,這是所要求的碼點,因爲這些逃逸被寫入十六進制。根據http://www.unicode.org/charts/PDF/U0000.pdf,您可能正在考慮* decimal * 30,\ u001e,它是一個名爲Record Separator的控制字符(或Unicode中的INFORMATION SEPARATOR TWO) 。 (它*不存在作爲代碼點,但它沒有字形,因爲它意味着不可打印的字符。) – 2010-06-29 21:19:36

+0

糟糕,你是對的。發佈更新。 – 2010-06-29 21:22:41

+1

+1:用於告訴讀者有關* Character Map *實用程序(charmap.exe)。偉大的提示,我一直使用。 – AMissico 2010-06-29 21:59:00

23

使用ChrW()函數返回Unicode字符。

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

我使用字符映射實用程序(CHARMAP.EXE)。運行並選擇控件字體中所需的字符,例如©Missico™,複製然後粘貼到屬性網格中的Text屬性中。您將不得不更改字體,因爲表單的默認字體是「Microsoft Sans Serif」,它不是Unicode字體。我不認爲你可以將這種方法用於不可打印的字符。

根據您的需要,您還可以使用本地化,它爲每種語言創建資源文件。再次,您將使用charmap.exe來選擇並複製所需的字符並粘貼到資源文件中。您可能會使用非打印字符,如製表符,換行符等,因爲這只是一個文本文件(Unicode)。

+0

當代碼文件寫入不支持這些字符的字符集時,這不會解決問題 - 並且如果您的編輯器字體不支持所有Unicode字符,則可能會導致問題。不是很好的解決方案! – 2010-06-30 12:07:58

+1

但是,如果文件是用Unicode編碼編寫的(因爲所有的現代文本文件都應該是這樣)並且字體支持字符,它*就是最好的解決方案。 – Philipp 2010-06-30 12:57:38

0

我希望你可以使用XML文字和XML轉義,但它不起作用。我不認爲XML文字允許您使用&#NN;。雖然it is a way的字符串裏面包含引號"

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

不,這是不可能的,因爲VB字符串不支持轉義序列。只需使用ChrW,這是幾個字符更多的類型,但也有點清潔。

+0

這並不是說它的輸入更多,而是它不能在表單設計器中完成,而且當你需要每次運行它時都需要運行它,因此它更乏味的設計表單。 – CodeFusionMobile 2010-06-30 15:42:52

4

與Convert.ToChar替換人權委員會:

str = Convert.ToChar(&H0030) & "More text" 
相關問題