Emacs: URL Percent Decode/Encode
Here's commands to percent encode/decode string. It's useful if you are working with html.
Examples of percent encoded URL:
http://example.org/%28D%C3%BCrer%29
http://example.org/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8
Examples of decoded URL:
http://example.org/(Dürer)
http://example.org/文本编辑器
Percent Decode URL
(defun xah-html-decode-percent-encoded-url () "Decode percent encoded URL of current line or selection. Example: %28D%C3%BCrer%29 becomes (Dürer) Example: %E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8 becomes 文本编辑器 URL `http://xahlee.info/emacs/emacs/emacs_url_percent_decode.html' Version 2018-10-26" (interactive) (let ( $p1 $p2 $input-str $newStr) (if (use-region-p) (setq $p1 (region-beginning) $p2 (region-end)) (setq $p1 (line-beginning-position) $p2 (line-end-position))) (setq $input-str (buffer-substring-no-properties $p1 $p2)) (require 'url-util) (setq $newStr (url-unhex-string $input-str)) (if (string-equal $newStr $input-str) (progn (message "no change" )) (progn (delete-region $p1 $p2) (insert (decode-coding-string $newStr 'utf-8))))))
Percent Encode URL
(defun xah-html-encode-percent-encoded-url () "Percent encode URL in current line or selection. Example: http://example.org/(Dürer) becomes http://example.org/(D%C3%BCrer) Example: http://example.org/文本编辑器 becomes http://example.org/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8 URL `http://xahlee.info/emacs/emacs/emacs_url_percent_decode.html' Version 2018-10-26" (interactive) (let ($p1 $p2 $input-str $newStr) (if (use-region-p) (setq $p1 (region-beginning) $p2 (region-end)) (setq $p1 (line-beginning-position) $p2 (line-end-position))) (setq $input-str (buffer-substring-no-properties $p1 $p2)) (require 'url-util) (setq $newStr (url-encode-url $input-str)) (if (string-equal $newStr $input-str) (progn (message "no change" )) (progn (delete-region $p1 $p2) (insert $newStr)))))