Python / 如何處裡亞洲文字(Unicode, UTF-8)?以兩個字元計算顯示長度?轉換字串與bytes?

Python / 如何處裡亞洲文字(Unicode, UTF-8)?以兩個字元計算顯示長度?轉換字串與bytes?

目錄 將 utf-8 字串轉換為 bytes 格式,並計算 bytes 長度 ▍將 utf-8 字串轉換為 bytes 格式,並計算 bytes 長度 使用 encode() 函數可將字串轉換為 bytes 格式,若將 bytes 印出來可以看到字串最前面是以 b'' 開頭顯示表示此為 bytes array。其中可見原本標準的 ASCII 字元能然維持一個 byte 長度,而且直接顯示字元。如果是 Unicode 文字則是用 \x 16進位的方式表示,且以中文字為例在 UTF-8 編碼下是 3 個 bytes 長度。例如:”串”的 Unicode 編碼為 \xe4\xb8\xb2。 若要取得字串的 bytes 總長度,在轉換成 bytes 格式之後可以直接使用 len() 函數取得長度。 Reference How can I...

Mac / Python使用Selenium爬蟲無法開啟chromedriver

Mac / Python使用Selenium爬蟲無法開啟chromedriver

最近更新MacOS之後發現正在開發的Python爬蟲程式無法啟動chromedriver了,系統出現了下面這段警告訊息: “chromedriver” cannot be opened because it is from an unidentified developer.macOS cannot verify that this app is free from malware. 中文的介面應該會顯示: 無法打開「chromedriver」,因為它來自未識別的開發者。macOS無法驗證此App未包含惡意軟體。 稍微Google一下發現好像很多人都有遇到類似的狀況,大概都是因為新版的MacOS對安全性的要求變得更高,導致許多沒有被認證的程式預設都被禁止執行,有些從網路上下載的程式也有可能遇到這種狀況。 解決的辦法有兩種: ▍取消程式的隔離註記(quarantine flag) 執行步驟: 開啟終端機(terminal) 移動到該程式的目錄下,如我的chromedriver放在下面的目錄下 執行下列任一個指令 xattr 編輯檔案目錄的附加屬性這個系統指令可以編輯檔案目錄的附加屬性,例如系統目錄屬性(com.apple.FinderInfo)或是這邊要講的隔離屬性(com.apple.quarantine)。xattr指令的語法是:xattr <options> attributes <name of application>在chromedirver所在的目錄下,執行xattr指令使用 -d 移除chromedriver的隔離屬性(com.apple.quarantine): spctl 編輯程式的安全性權限標記通常不會是這個原因造成chromedriver無法開啟,不過偶爾還是會遇到類似的狀況。出於安全性的理由,對於一些無法辨識來源的程式系統可能會禁止執行,使用spctl指令可以開啟”任何來源“的程式執行權限。spctl指令的語法是:spctl <option> <assessment label> <label name> <name of application> ▍使用開發者工作(Developer Tools) 第二種方法是使用開發者工作(Developers Tools)。如果你有安裝X-Code的話,可以將chromediver加入系統的開發者工具清單中,開發者工具會忽略隔離標記(qurantine...

SQL Server / 如何取得資料庫列表

SQL Server / 如何取得資料庫列表

想知道目前的 SQL Server 上的所有資料庫列表,可以用 SQL 指令的方式列出資料庫名稱與細節,也可以在 SQL Server Management Studio 上直接點選。 ▍方法一:SQL Query 指令 在 SQL Server 上有一個 master 的系統資料庫,裡面記錄所有關於系統層級的相關資訊,關於 master 資料庫的詳細資訊可以參考微軟的 document:master 資料庫 – SQL Server | Microsoft Docs。其中 dbo.sysdatabases 這張 table 就儲存了每個資料庫的訊息。 執行以下指令: 其中 name 欄位就是目前 SQL Server 上的所有資料庫名稱,後面還有關於資料庫儲存的位置等等訊息。 ▍方法二:直接點選 SQL Server Management Studio 的樹狀圖 如果你的資料庫並不多,或是你是一個害怕使用程式碼的人,沒有將大量資料庫名稱輸出的需求,也許你可以直接點開資料庫的樹狀圖。 在 SSMS 左側的 Object Explorer 中點開...

Win / 如何解除 Outlook禁止存取下列可能不安全的附件

Win / 如何解除 Outlook禁止存取下列可能不安全的附件

我平常工作的時候經常需要透過 E-mail 傳檔案,除了 Excel、Word 檔之外還有很多的壓縮檔、程式碼等。先不說被自己公司 Mail Server 擋下來的郵件,有時候有些附件是被 Outlook 自動隱藏起來。例如上次當我請別人寄送一個 .py 的 python 檔過來,附件檔案就這麼消失了,而信件上方會顯示這麼一條警告:「 Outlook禁止存取下列可能不安全的附件」。 其實這個檔案並沒有被 mail server 檔下,它只是被 Outlook 視為可疑檔案隱藏起來。要解開的方式非常簡單,只需要修改登錄檔機碼即可。步驟如下: 1. 進入登錄檔編輯器 點擊 Win + R 快速鍵,或是從開始列找到「執行」→ 輸入「 regedit 」進入登錄檔編輯器 2. 開啟 Outlook 設定 進入以下路徑,根據不同的 Outlook 版本可能版本號碼會有差 HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security 3. 將不想被隱藏的檔案格式加入機碼 在 Security 中加入 Level1Remove 字串值 → 並在數值資料中填入不想被移除的檔案格式副檔名,多個副檔名以分號區隔,如 .py;.exe。 再重新打開就看得到剛剛被隱藏的檔案啦~ Photo by Markus Spiske on Unsplash

[MySQL] 如何開啟遠端連線的權限,允許遠端裝置連線資料庫

[MySQL] 如何開啟遠端連線的權限,允許遠端裝置連線資料庫

因為安全性的考量,MySQL 預設是不允許遠端裝置連線本地端的資料庫。的確,允許其他裝置直接對資料庫進行存取的風險極高,不過有時侯我們總是需要遠端控制我們的資料庫,像是進行測試、初期的建置、伺服器間的相互連線、使用 user 端圖形化介面存取資料庫等。 允許遠端連線:開啟連接埠、建立使用者並允許權限 1. 開啟 Port 3306 MySQL 預設的 Port 是 3306,必須先開啟伺服器的連接埠,並確認防火牆的設定。尤其如果是建立在 GCP、AWS等雲端伺服器上,也要同時確認專案的防火牆設定。 2. 建立使用者 我們必須盡量避免使用 root 帳號,可以的話,建立一個新的使用者用來遠端存取資料庫。先以 root 帳號進入 MySQL 的 Console: 建立使用者名稱及密碼: 除了使用者名稱及密碼,這裡必需指定使用者的主機位置。過去的 MySQL 可以開啟全域的遠端連線權限,也就是允許任何的 IP 來源存取資料庫,在 MySQL 3 之後似乎已經不被允許這樣的設定。 參數如上方指令:建立一個使用者 user、密碼為 PASSWORD,位在本地端 localhost。若要建立遠端連線,就必須將 localhost 替換成遠端主機的 IP 位置。 例如我想用家裡的電腦連上資料庫,那就必須建立一個使用者並把家裡電腦的 IP 位置指定給 user,因為除了此一 IP 位置來源,資料庫一律會拒絕存取。 3. 給定使用者存取權限 指定位於 localhost 的使用者 user...

WordPress / 網站架設與搬家教學系列簡介及目錄

WordPress / 網站架設與搬家教學系列簡介及目錄

架設網站的步驟其實非常容易,概念也淺顯易懂,但是細節卻有點小複雜。整個教學系列是使用 WordPress Bitnami 把網站架設在 Google Cloud Platform (GCP) 伺服器上。架設網站可以歸納為八個步驟: 在 GCP 上佈署 WordPress Bitnami (教學一) → 安裝 gcloud SDK (教學二) → 架設 FTP (教學二) → 更改預設密碼 (教學三) → 設定靜態 IP (教學三) → 設定 Domain Name (教學四) → 設定 SSL 加密連線 (教學五) → 建立子主題修改網站外觀樣式 (教學七) 本篇作為一個目錄將所有的 WordPress 教學文章整理起來,方便讀者直接參考需要的文章。 WordPress 快速架站指南 如果讀者已經熟悉 Linux Debian 指令、Apache 伺服器參數設定、WordPress...

WordPress / 架站教學六:檔案及目錄的結構簡介與預設檔案權限

WordPress / 架站教學六:檔案及目錄的結構簡介與預設檔案權限

本篇介紹關於 WordPress Bitnami 的基本檔案及目錄的結構簡介,還有預設的檔案權限設定。檔案權限對於伺服器是一個非常重要的設定,它攸關了網站是否能正常運行與檔案能否存取的設定,如果在架設網站的過程當中遇到存取權限錯誤等問題,或是工具程式無法正確執行等等,很有可能就會是權限設定出錯造成的。 WordPress 檔案結構 Bitnami 系統檔案結構 使用 Bitnami 部署的 WordPress 網站,所有的檔案、應用程式、資料庫及 Apache 伺服器都會建立在 /opt/bitnami 這個目錄之下: WordPress 根目錄:apps/wordpress/ Apache 伺服器、 MySQL 資料庫及相關工具程式:apache2/, mysql/, postgresql/, apache-tomcat/ 憑證及相關檔案:licenses/ 關於程式語言和套件:php/, python/, ruby/, tcl/ 指令集 (common library):common/ WordPress 根目錄檔案結構 根目錄名稱預設是 wordpress (上方紅字),而 WordPress 根目錄的主要檔案結構是: 網站根目錄及內容:apps/wordpress/htdocs/ 參數設定:apps/wordpress/conf/ 工具程式:apps/wordpress/bnconfig 移除整個應用程式 (網站):apps/wordpress/uninstall 網站根目錄 (htdocs) 的檔案結構 wp-admin:關於 admin 的工具與程式,主程式是 admin.php。例如與資料庫的連線、後台介面、前端呈現及主要核心程式等。 wp-content:佈景主題...

WordPress / 架站教學七:修改網站外觀樣式,如何建立子主題 (child theme)

WordPress / 架站教學七:修改網站外觀樣式,如何建立子主題 (child theme)

WordPress 已經有很多免費的主題可以直接套版使用,甚至還有付費的主題提供更完整、更美觀的外觀介面可以套用,直接到 WP 的後台就可以設定。不過通常我們還是會希望套用了現成的主題樣式之後,我們還能自己調整部分的樣式。本篇會先簡介佈景主題的檔案結構,再告訴大家直接修改外觀樣式的方式及如何建立子主題 (child theme)。另外還有一些其它常見的網站外觀介面調整,如刪除 Bitnami Info Page Banner。   佈景主題的檔案結構 在前一篇的檔案結構簡介中有稍微提過佈景主題的檔案存放在 htdocs/wp-content/themes/ 的目錄下,每個主題以各別的資料夾分別儲存。如果你想要自己完全建立一個全新的佈景主題或者你想要詳細的手動調整網站每個位置的樣式設定,那麼你可能得了解整個版型 (template) 的結構及名稱,還有所有的程式及樣式設定。下面有幾個說明文件可以讀一下: 樣式主題的完整說明文件:Theme Handbook | WordPress.Org 網站結構:Site Architecture 1.5 | WordPress Codex 頁面及版型結構:Stepping into Templates | WordPress Codex 開發者說明文件:WordPress Codex 開發者說明文件:Developer Resources | WordPress.Org Understanding the WordPress Theme Structure Understanding WordPress Template Hierarchy for Faster Development 我們假設你沒有要完整開發一個新的佈景主題,只是要套用現有的版型再調整成自己想要的樣子。所以我們只對佈景主題的檔案結構做簡單的介紹,讓你知道調整外觀樣式應該修改哪個檔案,至於網站的版型結構及名稱就自己用像是 Chrome 開發者工具...

WordPress / 快速架站教學:在 Google Cloud (GCP) 台灣主機上免費架設 WordPress Bitnami

WordPress / 快速架站教學:在 Google Cloud (GCP) 台灣主機上免費架設 WordPress Bitnami

本篇快速架站教學是給已經熟悉 GCP、Linux 指令、Apache Server 和 WordPress 的朋友一個快速查詢指令與設定方式的文件,省略所有細節的解說直接把指令和參數一個步驟、一個步驟詳列出來。也可以搭配教學系列的文章閱讀,查詢詳細的說明。 環境說明與範例假設 在所有的教學文章當中,我們都是用 WordPress Bitnami 架設網站,目前 (2019.09) 的作業系統是 Linux Debian 9,並且使用 Google Cloud Platform (GCP) 的伺服器架設,目前有第一年免費試用的額度可以使用。主要架站的步驟大約是: 建立 GCP 專案並佈署 WordPress Bitnami,並安裝 Google Cloud SDK 以 SSH 連線的方式控制遠端伺服器 架設 FTP Server 更改 MySQL Administrator 密碼、設定外部靜態 IP 位址 設定 Domain Name 及 Apache Server 參數 申請 SSL 憑證,建立網站加密連線   步驟一:使用...

WordPress / 多重架站三:設定 SSL 加密連線 (以 Apache 為例)

WordPress / 多重架站三:設定 SSL 加密連線 (以 Apache 為例)

設定完各網站的網址之後,接著就要來設定 SSL 連線。他的設定方式與單一 WordPress 的設定方式幾乎相同,關於 SSL 的詳細說明可以參考 WordPress / 架站教學五:設定 SSL 加密連線,讓網站連線更安全 (以Apache為例) ,本篇就不再多做說明。 申請 SSL 憑證 本篇教學是用免費的 Let’s Encrypt 申請 SSL 憑證。 ▍安裝 Lego Client 下載 Lego 安裝檔,放在 /tmp 當中。並以 ls 指令確認下載回來的版本,像我下載的是 lego_v3.0.2_linux_amd64.tar.gz。 記得把 X.Y.Z 換成你所下載的版本、解壓縮,建立資料夾並將 Lego 移過去。 ▍停用 Apache server ▍產生密鑰並向 Let’s Encrypt 申請憑證 將 EMAIL-ADDRESS 改成你的 email。將 DOMAIN 改成你要申請的網址,可以同時申請多個 domains,以--domains="DOMAIN" 作為參數放進去即可。Lego...