解決Inno Setup製做中文安裝包在非中文系統上顯示亂碼的問題

尼瑪,好幾個月沒更新了。囧...php

目前我司新的客戶端開發已經接近尾聲,該改的bug已經改完,該重構的地方也都差很少了。視覺效果也已經根據美工的樣式改完了。因此,就差製做安裝包了。正所謂萬事俱備,只欠東風。工具

首先,固然是選用了InstallShield Limited Edition來製做安裝包了。這個工具說簡單,是真的簡單。所有都是圖形化的,而且能夠和VS很好結合。如何使用的細節,這裏就不表了。網上一搜一大堆。InstallShield LE版最大的問題是開放的功能實在太少了,我想在安裝包中打一個字體,發現必須得升級到Pro版才行。升級的問題卻是不大,可是也太貴了吧,2500+美刀。。。最主要的是腳本控制沒有開放出來,想一想仍是算了。所謂有錢任性,沒錢認命。拜拜~~測試

那接下來能選的就是Inno Setup了吧。怎麼製做Inno Setup安裝包,我以爲我也不必在這裏表了。一搜一大堆啊,你們都是碼農,各個智商高,不必了哦。看看Help文檔,分分鐘鍾搞定啊。字體

這裏主要說一說如何設置Inno Setup的中文安裝嚮導界面。編碼

首先,你要下載支持Unicode版本的Inno Setup(比方說isetup-5.5.5-unicode)。這裏給個連接,方便下大夥:http://www.jrsoftware.org/download.php/is-unicode.exe。之因此要提到Inno的中文安裝嚮導問題,主要是由於中文語言包,Inno沒有提供官方版本,因此你得本身搞。本身搞呢,其實也蠻簡單的,把安裝目錄下的Default.isl中各個項的英文翻譯成中文,而後保存的Languages目錄下便可。有一個細節除外,那就是[LangOptions]段。當你要支持多語言安裝顯示的時候會用到。其中LanguageName要使用Unicode字符來表示。比方說你但願語言選擇那一步顯示簡體中文,那麼須要這麼作LanguageName=<7b80><4f53><4e2d><6587>。翻譯

接下來,我假定你本身已經把全部相關的英語都翻譯成中文了,那麼你本身就能夠製做一箇中文嚮導的安裝包了。一般狀況下,咱們但願安裝包起碼國際化作的好一點。不論是神馬語言的Windows系統,安裝包在啓動後界面上的中文字符不該該顯示成亂碼吧?code

很不幸,不少時候我發現應用程序安裝包在我這裏總能出現各類問題。由於我向來使用英文系統。blog

爲了解決一些安裝程序亂碼的問題,我必須得設置下區域中關於Language for non-Unicode programs,以下所示:圖片

將Current language for non-Unicode programs設置成Chinese Simplified(這裏爲了測試Inno Setup,我已經將其設置爲English了)。unicode

OK,說到這裏,你本身試試看在英文系統上(或者其餘非中文系統裏)設置成上面圖片的顯示的樣子,將Current language for non-Unicode programs設成English,你的Inno Setup安裝包啓動後,是不是亂碼呢?

若是是亂碼,那麼恭喜你,由於,還好,這個問題是口以很好解決滴。

其實解決的辦法很簡單,你只須要將isl文件改爲UTF-8編碼便可。若是這還不行,請將編碼格式改成UTF-8 with BOM。

目前,支持Unicode的Inno Setup只支持UTF-8編碼,其餘的UTF-16 LE/BE with or without BOM都是不支持的。

好了,完了。感受廢話好多...哈哈...

相關文章
相關標籤/搜索