2013-01-07 45 views
1

在我們的Visual Basic 6.0程序,我們使用了一些字符串附加功能CHR(11),並顯示在文本框中。的Win 7和Win 2003 Server顯示ASCII值differntly

在Windows 2003 Server中,文本框中的值顯示爲「一個框(用於chr(11)),後跟字符串」 在Windows 7中,文本框中的值顯示爲「♂(for chr 11),其次是字符串「

任何人都可以諮詢爲什麼它的行爲就像這樣?

在此先感謝。

回答

2

這可能是在字體的差異。

即使在相同的」面孔名稱「用於實際安裝的fo nt可以根據諸如哪些字形被支持的東西而不同。你的程序是不是在這個詞的任何意義上使用ASCII

注意,但ANSI。從程序中的Unicode到ANSI的顯示映射也會隨着區域設置和字符集設置而變化。字符集也可能是一個因素。

Chr(11)說:「拿11並把它作爲當前代碼頁的ANSI字符,將其轉換成Unicode的,然後返回它作爲一個Variant字符串。」

Chr$(11)通過返回字符串中移除一些開銷,並ChrW$(11)是更清潔,跳過通過ANSI到Unicode轉換的洗滌以及。

更快卻又是剛剛使用的命名常量爲這個角色而不是vbVerticalTab

但沒有說影響顯示的。這更多的是避免不必要的開銷的問題。

你依靠的東西,是不可靠的,即非打印字符總是會有的字形。你看到的那個「盒子」符號意味着這個角色沒有可用的字形。

即使字符映射小程序不顯示值低於33(& H21)的符號的映射。