明明有字體為什么CAD圖紙打開中文都顯示成問號(hào)?
安裝卸載文件及輸入輸出異常、退出基本操作設(shè)置界面和顯示快捷鍵視圖坐標(biāo)定位捕捉選擇及組圖塊字體和文字布局和視口標(biāo)注打印填充外部參照光柵圖像圖層顏色表格線型二維繪圖多段線圖形修改三維建模復(fù)制粘貼查詢面積、長度心得及綜合技巧 工具及插件圖庫及相關(guān)資源
今天有網(wǎng)友遇到了一個(gè)奇怪的問題,圖紙?jiān)趧e人機(jī)器上打開漢字都顯示正常,但到了他的機(jī)器上全都顯示為問號(hào),如下圖所示。
開始以為是缺字體,將字體全部都拷過來,打開的時(shí)候也沒有提示缺字體,但文字還是顯示為問號(hào),如下圖所示。
這個(gè)確實(shí)有點(diǎn)奇怪,我也無法確認(rèn)具體原因。如果他的CAD版本和字體跟其他人都一樣,那問題應(yīng)該不在CAD上,可能跟系統(tǒng)環(huán)境有關(guān)系了,只能遠(yuǎn)程看了一下。
連接后我看了一下,果然圖中所有漢字都顯示成了問號(hào),之前看他截圖中字體設(shè)置也沒有大的問題,于是我在命令行輸入DWGCODEPAGE,返回的是ANSI_1252,很容易找到了問題的根源。如果是簡體中文,圖紙的代碼頁應(yīng)該是ANSI_936,如下圖所示。

我新建了一張空圖,代碼頁仍然是ANSI_1252,這個(gè)顯然是他的操作系統(tǒng)的區(qū)域語言設(shè)置出了問題。
打開控制面板的區(qū)域語言選項(xiàng),發(fā)現(xiàn)果然如此,區(qū)域雖然設(shè)置的是中國,但語言設(shè)置的是英語(英國),如下圖所示。

我點(diǎn)“更改系統(tǒng)區(qū)域設(shè)置”按鈕,將語言設(shè)置成中文簡體(中國)后,關(guān)閉并重新啟動(dòng)他的CAD后,文字打開就可以正常顯示成中文了。
估計(jì)很多人會(huì)跟他一樣奇怪,為什么CAD的文字顯示還會(huì)受操作系統(tǒng)設(shè)置的影響?DWGCODEPAGE又是什么?
這個(gè)問題我也只是大致知道,要給大家解釋清楚還真不容易,大家可能聽說過UNICODE和非UNICODE,UNICODE可以更好地支持多語言,關(guān)于UNICODE如果大家想了解更多,可以搜一下相關(guān)介紹。如果是一些非UNICODE的中文版軟件,當(dāng)區(qū)域語言設(shè)置為英文時(shí),菜單選項(xiàng)可能都會(huì)顯示問號(hào)或亂碼,或者打開文件時(shí)文件名都會(huì)識(shí)別成問號(hào),如下圖所示。

AUTOCAD 2007版以前就是非UNICODE的,在英文系統(tǒng)下就無法識(shí)別中文的文件名,到了AUTOCAD 2007版以后支持UNICODE了,但圖紙和文字本身還是跟語言版本有關(guān)系的,尤其是CAD中使用的大字體文件跟圖紙的代碼頁是密切相關(guān)的。如果是中文圖紙使用的中文大字體,可以正常解析并顯示為中文,但如果代碼頁變了,解析出來的字符就變了,如果在字體文件中找不到對應(yīng)的字符,就顯示成問號(hào)了,即使找到了對應(yīng)的字符,也可能是錯(cuò)的,看上去像亂碼。
我原以為AUTOCAD 2007或2008對代碼頁出來得不好會(huì)出現(xiàn)這個(gè)問題,但我試了一下2018也是如此??磥鞢AD對圖紙代碼頁的處理策略跟舊版不同了,舊版的代碼頁是保存在圖紙中的,比如一張日文圖紙的代碼頁是ANSI_932,當(dāng)一張中文圖紙?jiān)谌瘴南到y(tǒng)上打開并保存,導(dǎo)致代碼頁變成日文后,回到中文系統(tǒng)的中文版CAD上打開代碼頁仍會(huì)是ANSI_932也會(huì)顯示亂碼或問號(hào)。但2007以后CAD圖紙打開的時(shí)候直接根據(jù)系統(tǒng)語言來讀取代碼頁。當(dāng)系統(tǒng)語言改成英文后,所有圖紙包括新建圖紙的代碼頁都變成了ANSI_1252,這種情況如果打開圖紙,用操作系統(tǒng)的TTF字體書寫的中文是可以正常顯示的,但用SHX字體寫的中文的就是亂碼或問號(hào)了,如下圖所示。

其實(shí)不管圖紙本身會(huì)有代碼頁,字體或文字對象也會(huì)有代碼頁,例如我們是可以在同一張圖紙里既寫中文又寫日文的,兩者都可以正確顯示。
在系統(tǒng)語言設(shè)置成英文的狀態(tài)下,我將大字體設(shè)置為bigfont.shx或gbcbig.shx,然后RE,中文也是可以正常顯示的,如下圖所示。

看來SHX字體也有區(qū)別,有些字體在圖紙文件代碼頁不對的情況下也可以正常顯示文字,有些則不行。
很多人遇到過圖紙中其他文字都正常,但其中某一段出現(xiàn)亂碼的情況,如下圖所示。

換個(gè)低版本,如2004打開圖紙并查看一下一下文字內(nèi)容,看到的會(huì)不一樣,如下圖所示。

這種情況多半是這一段文字的代碼頁或編碼錯(cuò)誤了,在保存為低版本的時(shí)候使用了UNICODE編碼來保存這些文字,最終導(dǎo)致出錯(cuò),如果有辦法在低版本中將這些UNICODE編碼恢復(fù)成2004能識(shí)別的字符編碼才行,這種情況CAD軟件通常無法解決,最好找找找看有沒有其他圖紙中有相同的文字,復(fù)制粘貼過來吧。
出現(xiàn)這種情況原因我也不清楚,我一致以為跟在CAD高版本保存2004及以下低版本圖紙有關(guān),因?yàn)檫@類圖紙通常都是2004或2000版圖紙。不管是不是這個(gè)原因,建議大家保存2007版以上的圖紙。
我也沒有完全弄清楚UNICODE以及CAD的圖紙代碼頁,文字對象、字體的代碼頁是如何控制和配合的,大家其實(shí)也不必知道這些,只需要知道下面兩點(diǎn):
1、如果系統(tǒng)的區(qū)域語言設(shè)置不對,可能導(dǎo)致圖紙代碼頁錯(cuò)誤,文字顯示問號(hào)或亂碼。解決辦法就是到操作系統(tǒng)里將區(qū)域和語言改過來。
2、不要將默認(rèn)保存格式設(shè)置成2004及以下版本,避免文字在反復(fù)的格式轉(zhuǎn)換過程中出錯(cuò)。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
Aspen Plus安裝過程中RMS License證書安裝失敗的解決方法,親測有效! 2021-10-15
-
CAD外部參照無法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
