我是在ubuntu下,终端也是utf8字符串,C程序也是使用utf8编码格式存储的。程序运行时,在显示从数据表中读取的数据时,中文字符都是乱码(就全是?号)。 数据表中的中文字符是通过PHP的WEB页面以utf8编码存储进去的,在PHP的WEB页面中显示都是正常的。
不知这是怎么回事?有哪位知晓否? 可否告知在下处理方法, 不甚感激!
5 个解决方案
#1
ubuntu 字符集不对
我遇到了也没解决 可是我觉得你的应该简单多了
直接locale看看字符集设置
然后set lc_all=设置下看看
我遇到了也没解决 可是我觉得你的应该简单多了
直接locale看看字符集设置
然后set lc_all=设置下看看
#2
~$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
#3
自己解决了,在联接数据库前设置环境变量:
setenv("NLS_LANG","AMERICAN_AMERICA.AL32UTF8",1);
setenv("NLS_LANG","AMERICAN_AMERICA.AL32UTF8",1);
#4
帮顶
#5
还以为在dos下。
#1
ubuntu 字符集不对
我遇到了也没解决 可是我觉得你的应该简单多了
直接locale看看字符集设置
然后set lc_all=设置下看看
我遇到了也没解决 可是我觉得你的应该简单多了
直接locale看看字符集设置
然后set lc_all=设置下看看
#2
~$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
#3
自己解决了,在联接数据库前设置环境变量:
setenv("NLS_LANG","AMERICAN_AMERICA.AL32UTF8",1);
setenv("NLS_LANG","AMERICAN_AMERICA.AL32UTF8",1);
#4
帮顶
#5
还以为在dos下。