RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
PL/SQLDEVutf8乱码问题utf8bom-创新互联

字符集信息:

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的雄县网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

数据库字符集:al32utf8

本地客户端字符集:utf8

plsqldev默认文件编码:utf8无bom --自己设置的,默认是自动识别

问题:

通过plsqldev导出某表数据为sql文件,通过plsqldev打开后,发现中文乱码。

分析:

首先用notepad++打开sql文件,无乱码,看了下文件字符编码,是utf8无bom。

而后检查了数据库字符集与本地oracle客户端字符集设置,均为utf8。

遂怀疑是plsqldev工具字符编码识别问题,将文件转换为utf8含bom,再用plsqldev打开,无乱码。

可目前utf8含bom格式放在unix、linux环境上容易出现问题,所以改文件编码的方案就放弃了。

偶然发现另一个同样是utf8无bom的sql文件用plsqldev打开没有乱码,遂比较下,发现后者第一条sql语句中含中文,而前者是在50条以后才含有中文。

会不会是plsqldev工具按中文出现的位置去识别utf8是否含bom?

测试下,把第一个sql文件中含中文的sql语句放到第一条,用plsqdev打开,果然,无乱码!

那么,含中文的sql语句只能放在第一行才能无乱码?

验证下,把含中文的sql放到第三行,无乱码;放到第10行,无乱码;放到第20行,乱码了。

有没有更简单的方式?emmm,给这个sql文件第一行加一个中文注释试试,结果ok,无乱码。

推测:

plsqldev打开utf8文件,以中文出现的位置来判断此文件是否含bom,即前n行或前n个字符内没有出现中文,则认为此文件为utf8含bom。

解决方案:

在utf8无bom格式文件第一行加个中文注释即可。

未结:

具体是以前n行还是以前n个字符作为判断条件,目前本人尚未验证,仅仅为推测。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文题目:PL/SQLDEVutf8乱码问题utf8bom-创新互联
分享地址:http://lswzjz.com/article/ddhssh.html