zoukankan      html  css  js  c++  java
  • 文件编码检测.ZC

    1、今天(20181101) 发现 g文件中的 xml头 和 文件编码不一致,最后发现 貌似是我搞错了,人家的文件 编码方式写的是对的。

      我发现的现象是:XML里面写的是"GBK",EditPlus里面 看到的是 文件编码是 UTF-8。可能是我 做了保存动作 自己没注意不记得了?

    2、如果真的存在这个现象的话,那我就 需要一个检测文件编码方式 的手段。

      查了,发现 有些 编码方式是有 文件头标识的(文件开头的2/3个byte),但是 比较难处理的就是 不规范的UTF8和GBK文件  它们不好判断

      2.1、不规范的UTF8和GBK文件,都没有 文件头标识 开始就是文件的数据。

        网上也有说 用UTF8对 Unicode字符的编码规则来判断,但是 个人觉得又不太可靠,比如 又有UTF16呢 规则又是怎么样呢?

        想找一个 现成的库,直接已调用 就能返回结果的,于是 找到了 一个词"chardet"

    3、chardet

      3.1、找了好久 基本都是 python使用的,java的也有,就是没有C++的 找到了一篇 还是在 linux上编译生成 dll 再供Windows使用(cywein 编译 libchardet-1.0.4 用于windows - baidu_29569765的博客 - CSDN博客.html【https://blog.csdn.net/baidu_29569765/article/details/52239383?utm_source=blogxgwz6】)

        步骤有点多,不可控的环节有点多,怕怕,就没弄,以后有时间再弄...

      3.2、谷歌上搜"libchardet-1.0.4",看到2篇相关文章:

        (1)、1.0.4-1 _ libchardet package _ Ubuntu.html(https://launchpad.net/ubuntu/+source/libchardet/1.0.4-1

          ZC:这里 我下载到了 libchardet_1.0.4.orig.tar.bz2(E:chrome_download_180215C_文件编码自动检测)

        (2)、libchardet-1.0.5-4.fc27.x86_64.rpm Fedora 27 Download.html(https://fedora.pkgs.org/27/fedora-x86_64/libchardet-1.0.5-4.fc27.x86_64.rpm.html

          ZC:libchardet provides an interface to Mozilla's universal charset detector,which detects the charset used to encode data.

          ZC:这里,貌似是 libchardet-1.0.5的Linux里面的安装包(应该是 编译好了 直接安装就可以使用?)

    4、上面3.1中的 文章的备份:

      ZC:遗憾:文章中说的 小例子 现在已经失效了,文章中 也没说 编译好 libchardet.dll 怎么使用它... 它里面有什么导出函数 都不知道,看来 要用起来的话 还有很多东西要了解, 还有很多路要走...

      4.1、文章内容备份:

    cywein 编译 libchardet-1.0.4 用于windows

    记录一下,免得以后忘记。

    进入libchardet-1.0.4目录,执行如下命名。  

    PATH=/usr/local/i686-w64-mingw32/bin:$PATH
       export PATH
       ./configure --host=i686-pc-mingw32 --prefix=/usr/local/i686-w64-mingw32
         CC="i686-w64-mingw32-gcc"
         CXX="i686-w64-mingw32-g++"
         CPPFLAGS="-Wall -I/usr/local/i686-w64-mingw32/include"
         LDFLAGS="-L/usr/local/i686-w64-mingw32/lib"

    其中 i686-w64-mingw32 ,i686-w64-mingw32-gcc 和安装的 mingw有关系。


    上面完了后,make

    make 执行完了,进入src 目录

    执行如下命名

    i686-w64-mingw32-g++ -o libchardet.dll  libchardet_la-CharDistribution.o libchardet_la-JpCntx.o libchardet_la-LangBulgarianModel.o libchardet_la-LangCyrillicModel.o libchardet_la-LangGreekModel.o libchardet_la-LangHebrewModel.o libchardet_la-LangHungarianModel.o libchardet_la-LangThaiModel.o libchardet_la-nsBig5Prober.o libchardet_la-nsCharSetProber.o libchardet_la-nsEUCJPProber.o libchardet_la-nsEUCKRProber.o libchardet_la-nsEUCTWProber.o libchardet_la-nsEscCharsetProber.o libchardet_la-nsEscSM.o libchardet_la-nsGB2312Prober.o libchardet_la-nsHebrewProber.o libchardet_la-nsLatin1Prober.o libchardet_la-nsMBCSGroupProber.o libchardet_la-nsMBCSSM.o libchardet_la-nsSBCSGroupProber.o libchardet_la-nsSBCharSetProber.o libchardet_la-nsSJISProber.o libchardet_la-nsUTF8Prober.o libchardet_la-nsUniversalDetector.o libchardet_la-chardet.o -shared -static -fPIC -Wl,--out-implib,libchardet.lib

    编译出win 下面用的dll

    这个链接是我编译出来的,有小例子
    https://yun.baidu.com/share/link?shareid=757367141&uk=3523244269

     

    5、

  • 相关阅读:
    Taro 3.1 beta 发布: 开放式架构新增 4 端支持
    JS复习之深浅拷贝
    痞子衡嵌入式:MCUXpresso IDE下SDK工程导入与workspace管理机制
    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.6)- 串行NOR Flash下载算法(MCUXpresso IDE篇)
    《痞子衡嵌入式半月刊》 第 22 期
    痞子衡嵌入式:读工程师岗位工作31年退休的同事离职信有感
    痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU硬件那些事(2.5)- 串行NOR Flash下载算法(IAR EWARM篇)
    千万不要给女朋友解释 什么是 “羊群效应”
    保姆级教程,带你认识大数据,从0到1搭建 Hadoop 集群
    短链接服务Octopus的实现与源码开放
  • 原文地址:https://www.cnblogs.com/cppskill/p/9892798.html
Copyright © 2011-2022 走看看