| export LC_ALL=en_US.UTF-8 |
| |
| a=$'\303\251' |
| |
| echo "$a" |
| |
| echo ${#a} |
| |
| b=$'A\303\251B' |
| |
| echo "$b" |
| |
| echo ${b: -1} |
| |
| c=AeB |
| |
| echo ${c: -1} |
| |
| unset a |
| a=$(printf '%b' 'A\303\251B') |
| IFS=$(printf '%b' '\303\251') |
| |
| case "$a" in |
| "A${IFS}B") echo ok 1 ;; |
| *) echo bad 1 ;; |
| esac |
| |
| set $a |
| |
| case $1 in |
| A) echo ok 2 ;; |
| *) echo bad 2 ;; |
| esac |
| |
| set a b |
| |
| printf '%s\n' "$*" |
| # squeeze out blanks to avoid white space differences in od implementations |
| printf '%s' "$*" | od -b | ( IFS=$' \t\n' ; while read line; do echo $line; done; ) |
| |
| # display differences make this problematic |
| ${THIS_SH} ./intl1.sub |
| |
| # this tests both international handling in printf and temporary environments |
| ${THIS_SH} ./intl2.sub |
| |
| ${THIS_SH} ./unicode1.sub 2>/dev/null |
| ${THIS_SH} ./unicode2.sub |
| |
| ${THIS_SH} ./unicode3.sub 2>&1 |