先替换字符串中的\x22 为双引号,\x0A为回车
str2 = '{\x22name\x22:\x22hao\x22 \x0A ,\x22os\x22:\x22other\x22 } print str2.decode('string_escape')
查看oracle服务器编码设置
select * from nls_database_parameters;
查看oracle客户端编码设置
select * from nls_instance_parameters;
本机NLS_CHARACTERSET=ZHS16GBK
查看客户端环境配置,需要和服务器一样配置成ZHS16GBK
cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8" #LANG="zh_CN.GB18030" #LANG=en_US.UTF-8 LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN" SUPPORTED="zh_CN.GB18030:zh_CN:zh" SYSFONT="lat0-sun16" SYSFONTACM="8859-15" NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
python
import urllib log_object = eval(log_json) ry: if log_json.index('rolename') > 0 :
try: tmp_str = str(log_object['rolename']) rolename = urllib.unquote(tmp_str).decode('utf8').encode('gb18030') rolename = rolename[0:64] #write_log("rolename utf8->gbk1:" + str(log_object['rolename'])) #write_log("rolename utf8->gbk2:" + urllib.unquote(tmp_str).decode('utf8')) #write_log("rolename utf8->gbk2:" + urllib.unquote(tmp_str).decode('utf8').encode('gb18030')) except Exception,e: write_log("rolename utf8->gbk:" + tmp_str + str(e)) rolename = ''
else: rolename = '' except Exception,e: rolename = ''
或者配置oracle用户下的环境变量
vi .bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin export PATH ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/client_1 LD_LIBRARY_PATH=$ORACLE_HOME/lib PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin export LANG=en_CN.GBK export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH export PATH LD_LIBRARY_PATH export NLS_LANG=American_China.ZHS16GBK