In termsupport, use LC_CTYPE instead of LANG to enable byte-by-byte text processing. LANG doesn't seem to actually work.
Diff
1diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
2index da74dfdba457e5627e67eba91c4f3ee335b41da3..9ff8a811cb0706fc76f61c386b6662dbcd0f24f4 100644
3--- a/lib/termsupport.zsh
4+++ b/lib/termsupport.zsh
5@@ -65,8 +65,8 @@ if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
6 # Percent-encode the pathname.
7 local URL_PATH=''
8 {
9- # Use LANG=C to process text byte-by-byte.
10- local i ch hexch LANG=C
11+ # Use LC_CTYPE=C to process text byte-by-byte.
12+ local i ch hexch LC_CTYPE=C
13 for ((i = 1; i <= ${#PWD}; ++i)); do
14 ch="$PWD[i]"
15 if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then