why
Unicode defined some character width as ambigious.
Software determine the width of characters accroding the context.
However sometimes it is hard or impossible to know the context.
Thus I dirty fix some console softwares, let them recognize all characters in big5 encoding range as double width.
Now you will be happy with utf8 terminal and big5 fonts :)
- fix zh_TW.UTF-8/LC_CTYPE
- for wcwidth(3) and wcswidth(3)
- Before FreeBSD-5.3 or if you don't have utf8locale
- cd /usr/ports/misc/utf8locale/; make extract; cd work/utf8locale-*/mklocale
- big5width.pl big5uni.txt la_LN.UTF-8.src > zh_TW.UTF-8.src
- rm /usr/share/locale/zh_TW.UTF-8/LC_CTYPE
- mklocale -o /usr/share/locale/zh_TW.UTF-8/LC_CTYPE zh_TW.UTF-8.src
- FreeBSD-5
- cd /usr/src/share/mklocale; big5width.pl big5uni.txt UTF-8.src > zh_TW.UTF-8.src
- rm /usr/share/locale/zh_TW.UTF-8/LC_CTYPE
- mklocale -o /usr/share/locale/zh_TW.UTF-8/LC_CTYPE zh_TW.UTF-8.src
- FreeBSD-6, after 20050227
- screen patch (against 4.00.02)
Reference