Cenos文本乱码的问题

应用界面发现有的菜单数据是乱码的。排查过程

1. 查看orc字符集

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK


是支持中文的

2. 看执行的sql文件,windows看是正常的

centos看则是乱码,类似:

'³éÈ¡½á¹¹»¯Îļþ±í×Ö¶ÎÓ³Éä';

 

应该是windows的编码和centos不一致导致的。

服务器上使用file命令,也可以看出编码不对

]# file 2.sql 
2.sql: ISO-8859 C program text, with CRLF line terminators
# file -i 2.sql 
2.sql: text/x-c; charset=iso-8859-1

这里使用的是ISO-5559-1编码

尝试iconv命令转换

iconv -f ISO-8859-1 -t UTF-8 2.sql

还是一堆乱码-- ×Ô¶¯Í³¼ÆÏ̵߳÷¶ÈÏà¹Ø

 

规避方法:

Method1. 找到原始sql文件在windows的plsql下重新执行。

Method2. 需要再centos通过sqlplus执行,则需要注意编码格式再上传

windows这边编辑好的文件需要使用文本编辑工具转换编码,比如Notepad++  点击编码--以UTF-8格式编码

编辑器右下方则会出现UTF-8-BOM的字样,上传

]# file 2.sql 

2.sql:   UTF-8 Unicode (with BOM) C program text, with CRLF line terminators

cat 查看里面的中文正常显示。

 

PS:

 试过 编码--以UTF-8 无BOM格式编码,在centos使用file命令显示如下:

nobom.sql: UTF-8 Unicode C program text, with CRLF line terminators

cat查看还是乱码的
 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值