Wiem już, że mogę użyć czegoś takiego echo -ne "xe4xb8xadxe6x96x87"
drukować słowa Unicode.
Ale jest na stałe. Jak mogę go użyć dla zmiennej?
Oto mój skrypt:
text=($1)
for i in "${text[@]}";do
#debug
echo "current word is ($i)"
#code use $i goes here
done
Wynik to:
obecne słowo to (xe4xb8xadxe6x96x87)
Bezpośrednio za pomocą echo -ne $i
nie działa.
PS: Jeśli zastanawiasz się, dlaczego param skryptu jest tak dziwny, pochodzi on ze skryptu CGI Perla. Może skrypt Perla nie jest dobrze napisany, ale nie chcę teraz zagłębiać się w obsługę Unicode Perla CGI.
Odpowiedzi:
1 dla odpowiedzi № 1Powinien działać z Bash i echo -e
. Po prostu upewnij się, że naprawdę używasz Basha (a nie, na przykład, w Ubuntu Linux, powłoce dash):
$ cat script
#!/bin/bash
foo="xe4xb8xadxe6x96x87"
echo -e "$foo"
$ ./script
中文
Upewnij się również, że twoje środowisko (locale) jest skonfigurowane do używania utf-8, na przykład z LANG=en_US.utf-8
lub inny kod kraju.