我和PySide有点问题。我使用QtCore.QImage处理一些图像,注意到路径名中包含unicode字符的图像文件没有被打开。

所以我开始调查,发现QFile也出现了同样的问题。在

我试着给它输入一个由testring编码的'utf8'和一个解码的unicode字符串,两者的区别是一样的。

我也尝试过使用那些QFile.encodeName和QFile.decodeName函数,但所做的只是从文件名中去掉非ascii字符。在

我制作这个脚本是为了演示:#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os

from PySide.QtCore import QFile, QIODevice

try:

os.makedirs(u'/tmp/qttest')

except:

pass #probably dir just exists

os.chdir(u'/tmp/qttest')

def make_file(fn):

f = open(fn, 'w')

f.close()

def check_file(fn):

f = QFile(fn)

f.open(QIODevice.ReadOnly)

return f.isReadable()

fna = u'somefile.txt'

fnu = u'einhverskrá.txt'

make_file(fna)

make_file(fnu)

print fna+u' was opened successfully: ', check_file(fna)

print fnu+u' was opened successfully: ', check_file(fnu)

print fna+u' exists: ', os.path.exists(fna)

print fnu+u' exists: ', os.path.exists(fnu)

输出

^{pr2}$

有人能解释一下吗?在

更新

在看过源代码之后,我发现在unix上,QFile.open()总是通过这个函数传递文件名:static QString locale_decode(const QByteArray &f)

{

#if defined(Q_OS_DARWIN)

// Mac always gives us UTF-8 and decomposed, we want that composed...

return QString::fromUtf8(f).normalized(QString::NormalizationForm_C);

#elif defined(Q_OS_SYMBIAN)

return QString::fromUtf8(f);

#else

return QString::fromLocal8Bit(f);

#endif

}

这通常会导致从字符串中删除unicode字符。在

Linux qfile中文文件名,QFile无法打开包含unicode字符的文件名相关推荐

  1. linux apache中文名称图片,Apache、NGINX支持中文URL图片、文件名的终极解决方案

    本帖最后由 vzandy 于 2013-3-15 15:40 编辑 Apache(32位):安装环境:CentOS 5.6 + Apache 2.2.15 安装结果:安装后支持"中文图片.文 ...

  2. Arch Linux KDE下 WPS 部分无法打开中文名的文件问题 - 无法找到“”。请检查文件名的拼写,并检查文件位置是否正确。

    问题描述 无法找到"".请检查文件名的拼写,并检查文件位置是否正确. 安装过程 yay -S wps-office-cn wps-office-mui-zh-cn ttf-wps- ...

  3. linux绑定中文域名,linux shell正则表达式如何匹配域名(包含中文域名)

    linux shell正则表达式如何匹配域名(包含中文) shell匹配域名 1. 匹配示例 最近的项目需要校验一下域名格式匹配,百度一下,说明如下: DNS规定,域名中的标号都由英文字母和数字组成, ...

  4. linux shell正则表达式如何匹配域名(包含中文域名)

    linux shell正则表达式如何匹配域名(包含中文) shell匹配域名 1. 匹配示例 2.使用差别 3.中文域名 4.为什么[\u4e00-\u9fa5]不能匹配中文(**想直接获取匹配包含中 ...

  5. Unix/Linux中中文图像输出乱码问题。

    最近,在把条码系统集成到Oracle EBS平台上时,老是遇到中文乱码问题.服务器用Apache 1.3.EBS 平台的应用服务器JRun. 经过多方查找资料,现拿出自己的解决方案供后续遇到此类问题的 ...

  6. linux redhat中文字体安装,中文Linuxredhat中文字体安装

    Linux redhat中文字体安装 安装完linux redhat 5.4打开浏览器发现显示中文全部成了乱码原来在安装的时候没有选择安装中文字体支持包打开系统的镜像找到中文字体的相关安装包如 ...

  7. linux redhat中文字体安装,Linux redhat中文字体安装.doc

    Linux redhat中文字体安装 Linux redhat中文字体安装 安装完linux redhat 5.4,打开浏览器发现显示中文全部成了乱码,原来在安装的时候没有选择安装中文字体支持包,打开 ...

  8. linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件

    Linux系统把软硬件都抽象成文件,所以通过文件可以追踪到很多重要信息,如读取的配置文件.打开的端口等. 下面是常见的用法: 默认测试文件名为text.txt 1,显示打开text.txt的进程: l ...

  9. comsol临时文件夹中有不支持的字符_文件名中不能包含的字符

    文件名是为了方便人们区分计算机中的不同文件,而给每个文件设定一个指定的名称.由文件主名和扩展名组成. DOS操作系统规定文件名由文件主名和扩展名组成,文件主名由1~8个字符组成,扩展名由1~3个字符组 ...

最新文章

  1. Apache htpasswd命令
  2. linux设置脚本运行时间_手机自动点击器,录制手势自动点击,可设置运行时间...
  3. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
  4. matlab转差频率控制,转差频率控制的异步电机调速系统的研究
  5. Python中append()与extend()的区别
  6. 【探路者】第五周立会报告1(总第27次)
  7. java实现lof,LOF异常检测算法实现
  8. Ardusub源码解析学习(二)——电机库
  9. dlna android电视,DLNA推送安卓手机投屏电视
  10. 实现原理 扫描枪_条码扫描枪原理
  11. 2022新阅读:nmn有用吗?nmn注意事项有哪些?
  12. 响应函数 handlers
  13. ubuntu20.04开机显示recovering journal死机的解决方法
  14. 郑州计算机c语言培训机构,c语言入门学习选郑州哪家计算机专业学校
  15. 【转载】飞秋最新版2013下载
  16. Leetcode-元素和小于等于阈值的正方形的最大边长(python)
  17. BIOS设置光盘启动(上.Award bios)
  18. 能源区块链实验室出席G20汉堡峰会企业论坛
  19. PSP系统项目前景与范围文档
  20. 【超详细】7z的详解和7z的控制台参数说明

热门文章

  1. python使用matplotlib可视化:折线图、条形图、柱状图、直方图、饼图、雷达图(极坐标图)
  2. R语言使用igraph包进行网络(network)可视化实战:将变量映射到网络节点(vertex)、将变量映射到网络的边(edge)
  3. R语言Logistic逐步回归模型案例:分析与冠心病有关的危险因素
  4. 机器学习特征筛选:相关系数法(correlation)
  5. 机器学习数据预处理之离群值/异常值:图像对比法
  6. 请你介绍下Logistic回归模型?
  7. celldex包使用
  8. mysql text index_MySQL 全文索引(fulltext index)
  9. 初中教师资格证计算机试讲教案模板,初中数学教师资格证面试教案模板: 《投影》...
  10. VMware虚拟机搭MAC系统