zoukankan      html  css  js  c++  java
  • 发布Qt程序时别忘了带上plugins(codecs等)

    最近的一个程序中要用到国语语言的文本文件,包括泰文,日文,越南等等。很郁闷的是以前所有的文件都是本地编码,所以在处理这些文件的时候,都必须转换成unicode编码。还好在Qt中这很容易办法,QTextStream::setCodec()就可以了。
    在发布这个程序的时候,很奇怪的问题是在我PC上运行一切OK,在同事电脑上处理出来的数据和我不一样。英文,中文都是正确的。日文却是错误的。这让我始料未及。在程序中找了一天的,没有发现什么问题。最后猜测问题可能处在Qt上。因为我电脑上装了Qt的SDK,而同事电脑上没有。
    难道是需要的DLL没有发布完?但是程序运行没问题。

    我想起Qt中带了很多插件(Plugin),于是在Qt目录下的"qtplugins"下果然发现一个"codecs"的文件夹。下面的文件从文件名就可以区别出来是“简体中文,繁体中文,日文,韩文”的编码插件。于是我把这个文件夹拷贝到程序的当前目录下,在同事电脑运行,一切OK了。
    当然,codecs文件下面的".a"文件都可以删除,".dll"文件也可以把带"d"的debug版本的删掉。

    注意的是一定要把codecs文件下放在发布程序的同目录下,且不要更改目录名字。

    想来,unicode 一共6W多的字符, 中日韩的字符就占了4W多,且和本地编码都没有兼用,比如中文的GB18030,所有的转换都需要一一对映,没有转换的公式。难怪Qt对中日韩的字符都单独处理了。

    plugins文件夹下面还有很多其他的插件:
    sqldrivers 数据库连接的
    imageformats 图片格式处理的
    codecs 字符编码处理
    ............... 还有几个不列举了。

    总之发布程序的时候,除了Qt运行的Core和Gui等库,对一些特殊的处理还要注意是不是带了相应的插件。这很重要!

  • 相关阅读:
    AC日记——可能的路径 51nod 1247
    AC日记——[国家集训队2011]旅游(宋方睿) cogs 1867
    近期将要学习的内容(flag)
    Cogs 734. [网络流24题] 方格取数问题(最大闭合子图)
    Cogs 746. [网络流24题] 骑士共存(最大独立集)
    Cogs 729. [网络流24题] 圆桌聚餐
    [网络流24题]飞行员配对方案问题
    Hdu 3549 Flow Problem(最大流)
    Cogs 14. [网络流24题] 搭配飞行员(二分图匹配)
    Cogs 728. [网络流24题] 最小路径覆盖问题
  • 原文地址:https://www.cnblogs.com/zhouwenJS/p/4107646.html
Copyright © 2011-2022 走看看