最近公司接到一個老舊 Java 專案的升級改版案,由於原始碼全部都採用 Big5
編碼,導致在 Visual Studio Code 裡面無法成功編譯,雖然看了 Troubleshooting Guide for Encoding Issues 文件,也成功研究出維持 Big5 編碼也能持續開發的解決方案,但其實最好的解決方法,還是把所有 Java 原始碼變更為 UTF-8
才是王道。今天我就來分享幾個不同的方法,幫助你快速將專案的所有原始碼從 Big5
轉換成 UTF-8
字集編碼!
... 繼續閱讀 ...
當我們要進行機密文件傳輸時,可能會面臨許多不同的傳輸方式,但是過程中必須確保資訊安全,因此你就會需要考量到許多因素。這篇文章我打算分享如何利用 GPG 工具對檔案進行簽章與加密,檔案無論透過任何方式傳送給對方,都只有明確指定的對象可以開啟檔案,藉此達到資訊安全的中的機密性(Confidentiality)與完整性(Integrity)要求。
... 繼續閱讀 ...
一般來說,我們極少會在環境變數上使用小數點( .
)當成環境變數名稱來使用,但是在特定應用程式的條件下,可能被迫需要做出這樣的設定。像透過環境變數設定 .NET 應用程式的 LogLevel
就很可能會用到小數點來進行設定,本篇文章我將說明不同作業系統下的設定方式與潛在問題。
... 繼續閱讀 ...
最近要幫客戶在 Azure 架設一台 Nginx 反向代理伺服器 (Ubuntu 20.04 LTS),我想透過 cloud-init 將整台 VM 從無到有全自動安裝設定完畢,經過幾個小時的努力,終於達成全自動化建置的目標,實在非常令人振奮。這篇文章我就來說說部署的過程與技術細節。
... 繼續閱讀 ...
週日玩了一下 cloud-init 工具,我發現文件看官方文件不是那麼好上手,但是官網首頁的影片卻一看就知道怎麼設定。簡單來說,cloud-init 專門用來幫你初始化 Linux 的出廠設定,不但支援大多數 Linux 散佈版本 (distributions),也支援大多數雲端平台業者,也可以讓你在地端的 Bare-Metal 主機進行初始化,可謂是業界標準的初始化 VM 方法。我發現 Multipass 也有支援 cloud-init 設定,所以這篇文章我來大致說明一下設定的過程與套用的方式。
... 繼續閱讀 ...
我之前有篇 使用 MicroK8s 架設 Kubernetes 叢集的完整過程解析 文章,講解了完整的 MicroK8s 體驗的過程。雖然你可以在 Windows 上輕鬆的架設出一套 Kubernetes 叢集,但是由於 MicroK8s 的底層使用到了 Multipass 工具來建立虛擬機器(VM),事實上透過 Multipass 建立的 VM 在每次重開機的時候都會變更 IP 地址,因此只要 VM 重開機,基本上叢集就會壞掉,因為所有 Worker Nodes 將無法找到 Control Plane 的 IP 地址。這篇文章我來說說這個問題的解決方法!
... 繼續閱讀 ...
雖然透過 Multipass 建立 Ubuntu VM 相當便利,但是若要設定一組固定 IP 地址卻相對困難,我最近因為想要在家裡架一台 VM 起來,讓我的在同一個區域網路上的筆電也可以順利連上我的 VM,這篇文章我將來說明我的設定方法。
... 繼續閱讀 ...
當你在 Azure 使用 App Service 部署網站時,預設的時區是設定在 UTC 時間,當你的網站不需要處理跨時區的問題時,最簡單的解法,當然就是調整系統設定,讓你的程式可以直接讀取到台灣時區的時間 (UTC+8),原本我們都設定的好好的,但上周突然決定要改用以 Linux 為主的 App Service Plan,這才發現時區設定失效了,查詢後才發現原來設定不同!這篇文章我將說明如何正確的調整 App Service 的時區設定。
... 繼續閱讀 ...
最近有個專案要上線,客戶提供一台 CentOS 7 的主機給我們部署,但是官網的文件主要都是以 Ubuntu 作業系統為主,並沒有完整的文件說明如何在 CentOS 安裝,我在架設 Labs 環境安裝的時候,也發現部署過程真的有點地雷,所以我打算用這篇文章說明一下實際的安裝步驟。
... 繼續閱讀 ...
我最近漸漸的嘗試將各種前後端開發環境搬遷到 Linux 環境下,無論是在 WSL 或是原生的 Linux 的效能表現都比 Windows 來的出色。然而在微服務架構下,服務與服務間的通訊經常需要使用 TLS/SSL 憑證進行加密連線,但是自簽憑證在 Linux 底下預設是不受信任的,必須特別處理才能解決服務間的安全連線的信任問題。這篇文章我將說明這個過程與解決方法。
... 繼續閱讀 ...
雖然 .NET 有個 Uninstall Tool 可以用來解除安裝任何 .NET / .NET Core 版本,但是目前依然不支援 Linux 版本,可能是 Linux 生態實在是太複雜了,所以一直沒有提供好用簡便的反安裝工具。今天這篇文章我將分享幾個好用的命令,幫助你快速解除安裝現有的 .NET SDK 與 Runtime 版本。
... 繼續閱讀 ...
對於 WSL (Windows Subsystem for Linux) 一直無法處理 Big5 字元這件事,對我來說就像在一片白牆上的一個污點,明知這面白牆很漂亮,但就是無法不注意牆上的那個污點,一直覺得不完美,直到昨天都還是解決不了。睡一覺之後,想到了一個新的關鍵字,找到了一個 luit 工具,這就是我昨天一直想要找到的工具!
... 繼續閱讀 ...
我每隔幾年我就會遇到一次 non-Unicode 的編碼問題,真的不常見,但這些年來也處理過無數次了,每次都被搞的很煩。最近在 Linux 環境又遇到棘手的編碼問題,檔案內容是從 ISO-8859-1
(Latin-1) 字集的 Sybase ASE 資料庫轉出,所以編碼是 ISO-8859-1
字集,但內容其實是 BIG5
字集,而我用 Windows Terminal + WSL 2 又只支援顯示 Unicode
字集的文字,所以文字無法正常在螢幕上顯示或複製。幾經嘗試後,我決定把這幾年累積的心得都寫下來,以免日後又要再花時間研究一次。
... 繼續閱讀 ...