Skip to content

Instantly share code, notes, and snippets.

@myguidingstar-zz
Created April 10, 2012 04:47
Show Gist options
  • Save myguidingstar-zz/2348367 to your computer and use it in GitHub Desktop.
Save myguidingstar-zz/2348367 to your computer and use it in GitHub Desktop.
Generate charset-table (cpp vector) for all charsets
#!/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=0
while [ $i -le 133 ]
do
printf "charsetTable['%s'][%s]=%s" $1 $i `convertTo $1 $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
do
makeTable $charset > charset-data/charset.$charset
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment