CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 690497
leejd
:
操作系统的路径全是unicode的,关键问题是VCL
[阅读: 531] 2008-12-22 07:53:23
硬生生的把unicdoe转为Ansi的,转不过来的就用?来代替字符
相关信息:
VCL的unicode问题
(131字)
(
leejd
[667]
2008-12-22 07:06
)
python读出来,传给他
(空) (
龙之吻
[446]
2008-12-22 07:07
)
怀疑OpenDialog出来的FileName就有问题了
(空) (
leejd
[427]
2008-12-22 07:13
)
肯定有。我用wxpython的时候opendialog含中文就不行。转一下才可以用。
(空) (
龙之吻
[503]
2008-12-22 07:15
)
VCL已经直接把unicode转为ansi了
(24字)
(
leejd
[521]
2008-12-22 07:19
)
反正python 是直接返回 按照sys.getdefaultencoding()编码的。VCL不熟
(空) (
龙之吻
[697]
2008-12-22 07:22
)
干,我刚想追加信息
(43字)
(
leejd
[534]
2008-12-22 07:23
)
谁叫你使用中文的目录、文件名啊
(7字)
(
haitao
[477]
2008-12-22 07:09
)
客户是繁体系统,他们的客户是简体
(空) (
leejd
[391]
2008-12-22 07:10
)
你老是脑筋乱转弯
(40字)
(
haitao
[478]
2008-12-22 07:31
)
这个不是我可控制的
(35字)
(
leejd
[442]
2008-12-22 07:33
)
问题是:你在繁体系统下,建立了一个文件夹,但文件夹的名字,是一个简体中文编码的字符串!
(154字)
(
pcplayer
[804]
2008-12-22 07:48
)
操作系统的路径全是unicode的,关键问题是VCL
(33字)
(
leejd
[530]
2008-12-22 07:53
)
不是 UNICODE 那么简单。如果是2字节的 UNICODE 是要看代码页的。你都不知道你那段字符串究竟是哪个代码页的,当然就没法解。所以我说神仙都没法救你。
(33字)
(
pcplayer
[510]
2008-12-22 07:58
)
代码页是微软的过渡技术的产物,跟unicode无关
(73字)
(
leejd
[503]
2008-12-22 08:02
)
问题是,你碰到的问题,必须要知道那段字符串的代码页,才有解。说穿了你必须知道它是 BIG5 的还是 GB2312的。除非是 UTF8的
(空) (
pcplayer
[523]
2008-12-22 08:13
)
但是我用python代码就可以轻松搞定
(31字)
(
leejd
[451]
2008-12-22 08:19
)
ntfs file name不一定是unicode的
(空) (
pinxue
[403]
2008-12-22 08:23
)
但是我在python中将路径复制到脚本中,再转为unicode,就可以读出数据
(6字)
(
leejd
[548]
2008-12-22 08:26
)
嘿嘿,你将路径复制到脚本,毕竟不是真正的用程序去读硬盘上的文件夹名字啊。不一样的。
(25字)
(
pcplayer
[494]
2008-12-22 08:35
)
经过这道工序,我才知道问题出在TOpenDialog上啊
(34字)
(
leejd
[559]
2008-12-22 08:38
)
你看到的是 ? 符号而已,实际上是 BIG5 无法显示的 GB2312 编码的字符。你最好用蟒蛇也去做同样操作确认一下。
(空) (
pcplayer
[549]
2008-12-22 08:43
)
python不转unicode也会有问题。
(空) (
龙之吻
[481]
2008-12-22 09:00
)
pyqt没有这个问题
(58字)
(
leejd
[484]
2008-12-22 09:01
)
你没有做实验,不要那么肯定。
(空) (
pcplayer
[414]
2008-12-22 09:16
)
难道还要我贴截图
(空) (
leejd
[437]
2008-12-22 09:27
)
你如果是把字符串复制到脚本里去的,而不是在实际环境下用 python 的 OpenDialog 去打开来看看的,说明不了问题。
(空) (
pcplayer
[433]
2008-12-22 09:32
)
用pyqt的文件对话框选择的文件
(24字)
(
leejd
[425]
2008-12-22 09:33
)
早就试验过。看这个 http://www.cndev.org/forum/msg.aspx?pid=672121
(空) (
龙之吻
[430]
2008-12-22 09:36
)
文不对题。你根本没有实验鸡蛋碰到的情况:在一个 BIG5 系统里,有用 GB2312 格式的字符串作为文件夹的名字写在硬盘上的文件夹。
(40字)
(
pcplayer
[478]
2008-12-22 09:58
)
我这个问题其实很简单,只要TOpenDialog返回WideString即可
(空) (
leejd
[472]
2008-12-22 10:16
)
你的问题不简单。我前面已经说得很清楚了。不信你拿PYTHON来做一样的实际测试。环境也要一样。
(空) (
pcplayer
[389]
2008-12-22 10:52
)
用pyqt的文件对话框选择的文件 (24字) (leejd [6] 今天 17:33 )
(空) (
leejd
[358]
2008-12-22 11:12
)
反过来好像没有问题
(35字)
(
leejd
[406]
2008-12-22 11:14
)
你说反过来没有问题,我更能确认你的问题是什么了。很简单,你用 windows 自己带的资源管理器去看那个文件夹的名字是不是乱码。
(空) (
pcplayer
[544]
2008-12-23 01:29
)
反过来可能是没测试到吧
(11字)
(
leejd
[405]
2008-12-23 01:32
)
我在英文系统下实验过啊!
(空) (
龙之吻
[423]
2008-12-23 00:03
)
在英文系统下,根本说明不了任何问题。
(空) (
pcplayer
[384]
2008-12-23 01:29
)
那咋说名问题?都是系统缺省的编码不能decode的字符串,如果你用python 中文系统下含有中文同样不行
(空) (
龙之吻
[639]
2008-12-23 04:14
)
ntfs默认是unicode吧
(9字)
(
leejd
[424]
2008-12-22 08:39
)
你如果可以用 TNT 那套控件,彻底支持 UNICODE 的。但肯定也解决不了你的问题。
(空) (
pcplayer
[462]
2008-12-22 08:14
)
不用彻底支持unicode
(40字)
(
leejd
[478]
2008-12-22 08:20
)
那套控件里有你要的这两样东西。但我告诉你,还是解决不了你的问题。
(空) (
pcplayer
[398]
2008-12-22 08:36
)
抓紧换QT吧
(7字)
(
龙之吻
[395]
2008-12-22 08:56
)
他刚从QT退下来
(空) (
Apache
[437]
2008-12-22 08:56
)
我没用过。
(10字)
(
龙之吻
[361]
2008-12-22 08:58
)
QT没有这个问题
(41字)
(
leejd
[462]
2008-12-22 09:00
)
你没有做实验,不要那么肯定。 (空) (pcplayer [0] 今天 17:16)
(空) (
pcplayer
[370]
2008-12-22 09:17
)
上次看到delphi写的sqliteadmin,记录里的utf-8的内容,在dbgrid里显示为乱码。。。。。
(11字)
(
haitao
[2862]
2008-12-22 09:37
)
UTF8 本身D7 是不支持的。但如果你装了 TNT 控件,就没问题了。或者D2009说不定已经没问题了,因为它号称支持 UNICODE 了。
(空) (
pcplayer
[700]
2008-12-22 10:00
)
TNT的使用,是需要把form里的所有非unicode控件都替换成TNT对应的控件??
(7字)
(
haitao
[494]
2008-12-23 01:56
)
不需要。只是你需要处理 UNICODE 的地方才需要。
(空) (
pcplayer
[428]
2008-12-23 02:27
)
改英文文件名,这个有啥好说的啊,2种中文系统就是麻烦
(空) (
pigprince
[513]
2008-12-22 11:36
)
客户经常遇到,如果能搞定是最好的,以前就是一直拖着的
(26字)
(
leejd
[384]
2008-12-22 11:54
)
Win2K以上繁体系统建简体文件名与简体系统建繁体文件名都没有问题
(6字)
(
JoJo
[516]
2008-12-23 02:17
)
我们现在是讨论VCL的问题
(空) (
leejd
[403]
2008-12-23 02:52
)
delphi的AnsiString和WideString的自动转换是跟据系统默认Ansi字符集来转换。
(空) (
没脾气2x
[1299]
2008-12-23 03:31
)
所以需要知道代码页。实际上转换是采用的 MultiByteToWideChar 这个 WINDOWS API,它需要知道代码页
(334字)
(
pcplayer
[776]
2008-12-23 03:45
)
我有个想法,没试过不知道行不行?
(80字)
(
龙之吻
[448]
2008-12-23 04:16
)
在什么时候发射?打开按钮没有事件
(空) (
leejd
[391]
2008-12-23 04:35
)
execute后啊
(63字)
(
龙之吻
[430]
2008-12-23 04:36
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录