编译cppcms官方文档里“Hello World” 例子:
cppcms.com/wikipp/en/page/cppcms_1x_tut_hello
编译完成后执行 hello -c config.js
结果出现错误异常提示'Invalid or unsupported char set : utf-8"
周围没人遇到过这个问题,上网一搜也没有什么结果,哪怕用google英文。
急死人了。
不过冷静下来经过排查,发现这个和自己的程序没有关系,而是config.js的问题,异常在刚开始读取config.js的时候就发生了。
config.js里的内容肯定没问题,只可能是.js文本保存格式有问题,导致cppcms程序不识别。
那也就是我的系统真的不支持utf-8?
我的ubuntu系统和周围同事装得差不多,也不记得自己改什么配置了,utf-8这么基本的字符集还能出问题?
于是网上搜了下关于linux 字符集的基本知识,然后在本机运行
$ locale
LANG=en_US.UTF-8 LANGUAGE=”C” LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL=C
LANG=en_US.UTF-8 LANGUAGE="en_US.UTF-8" LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=
$ sudo vim /etc/environmen
LANG=en_US.UTF-8 LANGUAGE="en_US.UTF-8" LC_CTYPE="en_US.UTF-8"
这三行就够了,当然把其他几项全部添加上也行,这里是英文UTF-8, 如果相知吃中文环境,en_US换成zh_CN,具体自己去查。
保存配置文件,然后重启系统
大功告成,问题解决。