求助(一个菜鸟问题)
1楼: ÿ 是一个Unicode字符,而且带这种字符的文件名,用FindFirst/FindNext得到的文件名会变成?号,如:有人建了一个 abcÿ 的文件夹(后面没有空格,ÿ不是双字节),查找到以后得到的文件名就变成了 abc? 了,以至无法用代码访问这种文件夹了。
这里其实就是建立特殊unicode文件名的问题,谁能帮我?感激不尽!
...
MyFileName:=WideString('ab')+WideChar($00FF);// ÿ这个字符的Unicode 码值为$00FF
这里其实就是建立特殊unicode文件名的问题,谁能帮我?感激不尽!
2楼: 不要用FindFirst/FindNext这两个函数,因为它们不支持Unicode 文件名,可以改用API函数FindFirstFileW/FindNextFileW。
3楼: 这个我也可以想得到,关键是建立 ÿ 文件名,ÿ的WideChar值是多少?
如何用CreateFile建立?本来以为ÿ是#$FF$0或者#$FF00,但不能成功
4楼: //ÿ的WideChar值是多少
WideChar wc = 'ÿ';
ShowMessage(IntToHex(Word(Ord(wc)),4));如管家婆2008++多台电脑用
5楼: 建立包含Unicode 字符名称的文件夹可以用CreateDirectoryW函数,建文件则用CreateFileW函数。因为Delphi 的代码编辑器本身也不支持Unicode,所以如果程序中表示一个包含Unicode 字符的字符串时要用强制类型转换的方法来写。比如要表示abcÿ 这个字符串,就要写成:
var
MyFileName:WideString;
字串2
...
MyFileName:=WideString('ab')+WideChar($00FF);// ÿ这个字符的Unicode 码值为$00FF
6楼: 晕,我试来试去就是没试$00FF:(
谢谢SparkV!谢谢zjan521
7楼: to zjan521:
对不起,刚才没怎么注意, 其实分数应该给您多一些,对不起。
'ÿ'直接复制粘贴到Delphi代码编辑器中会变成 "?",但在记事本中保存成unicode文本,再用其它编辑器就可以看到其值了。
上一篇:如何建一个名称中含有ÿ 字符的文件 下一篇:小问题,帮忙。