基于CPPCMS的web应用启动载入.js配置文件时遇到'Invalid or unsupported char set : utf-8"

编译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=

显然我们的UTF-8环境不对,那么怎么修改呢?

$ 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,具体自己去查。


保存配置文件,然后重启系统


大功告成,问题解决。



你可能感兴趣的:(linux,异常,utf-8,字符集,cppcms)