网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

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个字符作为判断条件,目前本人尚未验证,仅仅为推测。


网站标题:PL/SQLDEVutf8乱码问题utf8bom
文章网址:http://bjjierui.cn/article/ieocdd.html

其他资讯