2018年4月4日 星期三

Linux Mint 桌面使用散記 (三) VirtualBox

雖然筆電改用了 Linux,但是工作上還是需要 Windows,這就得依靠虛擬機器來幫忙了。安裝好 VirtualBox 之後,順利的啟動了先前在 Windows 10 上製作好的虛擬機器。執行工作上需要的開發工具也沒有問題,也能夠順利的偵錯。

但奇怪的是,怎麼也無法抓到電腦上安裝的 USB 設備,如晶片卡讀卡機等。經過幾番搜尋,發現必須要把目前的使用者加入 vboxusers 群組才可以,使用這個命令,將目前的使用者加入 vboxusers 群組。

sudo usermod -a -G vboxusers $USER

然後在 VirtualBox 中就能夠順利的使用 USB 設備了。

Linux Mint 桌面使用散記 (二) 中文輸入法

在 Linux 底下有很多套中文輸入法,如 gcin、iBus、fcitx、scim 等,中文輸入法的安裝與切換在 Linux Mint 底下非常容易,只要使用 系統設定 > 輸入法 就可以安裝各種輸入法,以及選擇要使用哪一種輸入法。

當然也可以用 apt 來安裝需要的輸入法之後,再去 系統設定 > 輸入法 選擇要使用的輸入法,然後重新登入就可以了。

經過多方的嘗試,最後的選擇是 fcitx 小企鵝輸入法。當然 iBus 跟 gcin 也都是很不錯的,只是這兩種輸入法在 Mozilla 家的軟體輸入時,iBus 是只有第一個字看得見輸入的注音,後面的字都看不見輸入的注音,直到從輸入暫存區送出之後,再輸入的第一個字才看得到輸入的注音。而 gcin 稍微好一點點,第一個字看得到,接下來的字只看得到第一個注音碼。由於我使用的郵件軟體是 Thunderbird,正好是 Mozilla 家的,所以就選擇 fcitx 了

安裝 fcitx 的方法很簡單,在終端機裡輸入
sudo apt install fcitx fcitx-chewing
就可以安裝 fcitx 以及新酷音模組
再去 系統設定 > 輸入法 選擇要使用 fcitx 輸入法,重新登入就可以了。

Linux Mint 桌面使用散記 (一) 為什麼改用 Linux

自從使用 Windows 10 以來,在很多地方都很滿意,但不滿意的地方總是比較在意的。例如:中文輸入法,慣用的自然輸入法在 Windows 10 底下一直有問題,嘗試了很多其他的智慧注音輸入法,如 PIME、超注音電腦版、搜狗輸入法注音版,但各有各的問題。

不過輸入法還不是最受不了的,無法關掉的自動更新、不知什麼時候會吃掉 100% CPU 的「系統服務」以及移除不掉的內建程式,才是讓我下定決心更換作業系統的關鍵。

既然要換作業系統,原先在 Windows 下的程式開發環境就得搬移到 VM 裡,雖然已經有做好的 Windows 7 VM,不過那是用 VMWare 做的,Linux 上可沒有 VMWare,好在 VirtualBox 可以支援 VMWare 的虛擬磁碟檔 (.vmdk) ,就使用 Virtual Box 建立新的 VM,掛上 .vmdk 檔後開機。很好!可以順利開機使用。

接下來就是程式開發環境,花了一些時間在 VM 裡把程式開發環境安裝好之後,就準備重灌了。

因為我不喜歡 Ubuntu 用的 Unity 桌面,所以選用的發行版是 Linux Mint,安裝媒體也很簡單,下載 Linux Mint 的 ISO 檔之後,用 WinDiskImager 32 寫入隨身碟,就可以開機試用與安裝了。

安裝過程一切都很順利,VirtualBox 的安裝也很簡單,VM 也順利的啟動了。

蠻好的!

2018年3月15日 星期四

ASP.Net 對於從 Url 傳入 BIG5 中文的處理方法

今天同事遇到一個問題,他跟某便利商店對接挑選門市,結果對方回呼時,傳入的中文是 BIG5 的,問我要怎麼處理。

由於 Request["param_name"] 是已經「壞掉」的資料,所以得從 Request.RowUrl 下手。

經過一番搜尋,得到的結果是下面這一段程式,用指定的 Encoding 來解碼 Request.RowUrl,再用 HttpUtility.ParseQueryString 拆解成 NameValueCollection

var request = HttpUtility.ParseQueryString(
    HttpUtility.UrlDecode(
        Request.RawUrl,
        Encoding.GetEncoding("big5")));

這樣 request["param_name"] 就得到正確編碼的內容了

特記於此,以備日後查看。

2017年8月1日 星期二

JavaScript 對於字串內含有 Unicode 編碼的處理方式

在 Web 應用程式上要做關鍵字搜尋時,用的是自製的搜尋元件,前端與後端都是自製的。一直以來都沒有什麼問題,而這次的新案子測試人員發現罕用字出現了問題。

輸入關鍵字,查詢出來顯示時還是正常的,點選需要的資料帶入 textbox 時,罕用字卻變成了 &#xxxxx; 這樣的型式 (xxxxx 是10進位數字)

嘗試了呼叫 unescape、decodeURI、decodeURIComponent 都無法處理

後來只好問 google,找到一些資料之後,寫成以下的 function,提供出來給大家參考:

//--------------------------------------------
//  將字串裡的 unicode 換成文字
//--------------------------------------------
function ConvertUnicode(str)
{
    // 先處理 \uXXXX 這種型式的
    str = unescape(str);
    // 然後再處理 &#XXXXX; 這種型式的
    var regexp = /&#[0-9]+;/g;
    var match = regexp.exec(str);
    while (match !== null)
    {
        var s = String.fromCharCode(match[0].replace(/[&#;]/g, ""));
        str = str.replace(new RegExp(match[0], "g"), s);
        match = regexp.exec(str);
    }
    return str;
}

2017年6月15日 星期四

給 Windows 10 中文輸入法安裝 “US 鍵盤”

將以下文字存成 .REG 檔案,並匯入登錄即可

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Keyboard Layout]

[HKEY_CURRENT_USER\Keyboard Layout\Preload]
"2"="00000404"
"1"="d0010404"

[HKEY_CURRENT_USER\Keyboard Layout\Substitutes]
"d0010404"="00000409"

[HKEY_CURRENT_USER\Keyboard Layout\Toggle]

解決 Windows 10 發生 Microsoft Compatibility Telemetry 佔用高 CPU 的問題

以系統管理員權限開啟 cmd 命令提示字元,執行以下指令

net stop diagtrack
net stop dmwappushservice
sc config diagtrack start= disabled
sc config dmwappushservice start= disabled