Skip to content

Instantly share code, notes, and snippets.

@lewtds
Forked from myguidingstar-zz/charset-helpers.sh
Created March 17, 2013 15:11
Show Gist options
  • Select an option

  • Save lewtds/5181960 to your computer and use it in GitHub Desktop.

Select an option

Save lewtds/5181960 to your computer and use it in GitHub Desktop.
#!/bin/sh
convertibles=('À' 'Á' '' 'Ã' '' '' '' '' '' '' 'Ă' '' '' '' '' '' 'Â' 'È' 'É' '' '' '' '' '' '' '' '' 'Ê' 'Ì' 'Í' '' 'Ĩ' '' 'Ò' 'Ó' '' 'Õ' '' '' '' '' '' '' 'Ô' '' '' '' '' '' 'Ơ' 'Ù' 'Ú' '' 'Ũ' '' '' '' '' '' '' 'Ư' '' 'Ý' '' '' '' 'Đ' 'à' 'á' '' 'ã' '' '' '' '' '' '' 'ă' '' '' '' '' '' 'â' 'è' 'é' '' '' '' '' 'ế' '' '' '' 'ê' 'ì' 'í' '' 'ĩ' '' 'ò' 'ó' '' 'õ' '' '' '' '' '' '' 'ô' '' '' '' '' '' 'ơ' 'ù' 'ú' '' 'ũ' '' '' '' '' '' '' 'ư' '' 'ý' '' '' '' 'đ')
#Usage: convertTo charsetName id
function convertTo() {
printf "${convertibles[$2]}" | ./uvconv -f UTF-8 -t $1 | hexdump -e '1/1 "%02x"'
}
#Usage: makeTable charsetName
#Example: makeTable "TCVN3" > charset.TCVN3
function makeTable() {
i=1
while [ $i -le 134 ]
do
# printf "charsetTable['%s'][%s]=%s" $1 $i `convertTo $1 $i`
printf "0x%s\t0x%s # %s" `convertTo $1 $i` `echo -n ${convertibles[$i]} | iconv -f UTF-8 -t UTF-16BE | hexdump -e '1/1 "%02x"'` ${convertibles[$i]}
let i++
echo
done
}
#All charsets supported by uvconv
#mkdir charset-data
#for charset in BKHCM1 BKHCM2 ISC NCR-DEC NCR-HEX TCVN3 UNI-COMP UNICODE UVIQR VIETWARE-F VIETWARE-X VIQR VISCII VNI-MAC VNI-WIN VPS WINCP-1258
for charset in VNI
do
makeTable $charset > charset-data/$charset.txt
#echo `echo -n 'a' | ./uvconv -f UTF-8 -t $charset`
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment