Command Prompt / Windows Powershell 預設使用UTF-8 編碼 ...

文章推薦指數: 80 %
投票人數:10人

此文主要協助各位調整Command Prompt / Windows Powershell 預設使用UTF-8 編碼,有興趣就往下看吧! 本篇目錄[隱藏]. 前言; 臨時修改; 永久修改. Command ... 初探Oracleexp&imp指令使用方式 FluentInterface|一種程式碼”寫作”風格 此文主要協助各位調整CommandPrompt/WindowsPowershell預設使用UTF-8編碼,有興趣就往下看吧! 本篇目錄前言臨時修改永久修改CommandPromptWindowsPowershell結尾 前言 相信每個工程師應該都會碰到需要下指令的時候,但多少都會碰到中文亂碼這件事,這時就會準備直接打開瀏覽器搜尋“XXXX中文亂碼”等關鍵字,而且這種問題好像比較多都是華人會碰到,畢竟多數程式在設計就會是以UTF-8編碼為主,因其受眾也比較多的關係。

DefaultCodePage 所以今天就來談談Win10環境下,如何調整CommandPrompt/WindowsPowershell預設使用UTF-8編碼。

... 臨時修改 >chcp65001 僅調整當下Process(CommandPrompt/WindowsPowershell)的字碼頁(CodePage)為65001。

CodePage65001nowactived ... 永久修改 CommandPrompt 💭在命令提示視窗(CommandPrompt)顯示UTF-8內容 上文中有關davidhcefx的回覆解法,的確可以讓CommandPrompt預設UTF-8編碼,而不用每次都還要改字碼頁,下面就稍微圖解一下: Windows搜尋regedit前往HKEY_LOCAL_MACHINE\Software\Microsoft\CommandProcessor該位置於第二點提到之位置底下新增字串值,數值名稱為Autorun,數值資料為chcp65001>nul 此時再次創建一個新的Process,預設字碼頁就是65001了。

CodePage65001nowactived WindowsPowershell 如果WindowsPowershell要預設使用UTF-8編碼相比於CommandPrompt就複雜得多…畢竟微軟出品(´_ゝ`) 💭UsingUTF-8Encoding(CHCP65001)inCommandPrompt/WindowsPowershell(Windows10) 上文有比較詳細的討論,下面這邊就稍微圖解一下: 確認[console]::OutputEncoding、[console]::InputEncoding、$OutputEncoding這些變數確認$PROFILE變數新增Microsoft.PowerShell_profile.ps1至第二點提到之位置C:\Users\UserName\Documents\WindowsPowerShell底下Microsoft.PowerShell_profile.ps1內容如下:$OutputEncoding=[console]::InputEncoding=[console]::OutputEncoding=[Text.UTF8Encoding]::UTF8 此時再次創建一個新的Process,預設字碼頁就是65001了。

CodePage65001nowactived 回過頭來看PowerShell為什麼可以透過Profile檔案來客製化Process環境?其實也沒有什麼特別的原因,答案盡在PowerShell官方文件AboutProfiles,它設計上本來就可以利用Profile檔案來客製Process環境! 以上例來看,我僅侷限在當前的登入者呼叫PowerShell要去幫我先跑Profile檔案,若換了另一個登入者呼叫PowerShell就不會特別先去跑Profile檔案,因為另一位登入者並沒有照我們上述做了那些事情! 當然也可以預設讓所有登入者都去跑同一個Profile檔案,這部分就參考官方文件囉~ ... 不過還有一件特別需要注意的事情,就是PowerShell在執行指令時要特別小心編碼問題! 💭PowerShell執行非.NET程式在輸出資料時要注意編碼問題 你可能會覺得很奇怪?阿不是我們都調整好UTF-8編碼了嗎? 我創建了一個名為test的文字文件檔且編碼為UTF-8,如下圖: WTF 如果沒特別給encoding參數,就會顯示亂碼,我也是覺得蠻黑人問號(›´ω`‹)… 算是先留下一個洞,未來有再碰到類似問題,再回來解答吧~ 結尾 感謝各位花時間看完此篇小文,如果本文中有描述錯誤,還請各位指教。

希望這篇文章可以解決掉大多數人對於CommandPrompt/WindowsPowershell預設使用UTF-8編碼的困擾哦◝(゚∀゚)◟ Views: 1,681 近期文章 HiHi各位,看這邊! Builder建造者模式|複雜物件建構及樣貌分離 如何移除VisualStudio2019已授權金鑰 探討.NETHtmlEncode解決方案之間的比較 如何透過System.DirectoryServices來確認Windows使用者是否為啟用狀態!? 彙整 2021年6月 (1) 2020年12月 (1) 2020年10月 (1) 2020年7月 (1) 2020年6月 (1) 2020年5月 (2) 2020年4月 (2) 2020年3月 (8) 2020年2月 (2) 2020年1月 (7) 文章分類 .NET(1) .NETCore(4) .NETStandard(1) API設計模式(1) CommandPrompt(1) IIS(1) Oracle(4) VisualStudio(3) WindowsPowershell(1) 單元測試(1) 未分類(1) 瀏覽器擴充功能(1) 物件導向設計原則(5) 軟體設計原則(2) 標籤ActiveDirectory ActiveDirectoryServiceInterface Chrome擴充功能 Cross-siteScripting HtmlEncode JMeter SOLID原則 WinNT WorkerService 元件 剖面導向程式設計 創建型模式 加密 單元測試 壓力測試 工具 微軟 指令 插件 故障排除 物件導向 移轉 程式碼可讀性 程式覆蓋率 網站開發 解密 資料保護API 資料存取 錯誤處理 錯誤訊息 本網站透過使用Cookies記錄與存取您的瀏覽使用訊息,當您使用本網站時,即表示您同意Cookies技術支援。

我們也不會將您的任何Cookies數據分享他人或出售!我同意並關閉



請為這篇文章評分?