文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

PL/SQL DEV utf8乱码问题 utf8 bom

2024-04-02 19:55

关注

字符集信息:

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


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯