相关疑难解决方法(0)

NTFS中存储的文件名是什么编码?

我刚刚开始编写一些程序来处理WinXP系统上具有非英文名称的文件名.我已经完成了一些关于unicode的推荐阅读,我认为我得到了基本的想法,但有些部分对我来说仍然不是很清楚.

具体来说,什么编码(UTF-8,UTF-16LE/BE)是存储在NTFS 中的文件(不是内容,而是文件的实际名称)?是否可以使用fopen()打开任何文件,它接受一个char*,或者我别无选择,只能使用wfopen(),它使用wchar_t*,并且可能需要一个UTF-16字符串?

我尝试手动输入UTF-8编码的字符串给fopen(),例如.

unsigned char filename[] = {0xEA, 0xB0, 0x80, 0x2E, 0x74, 0x78, 0x74, 0x0}; // ?.txt

FILE* f = fopen((char*)filename, "wb+");
Run Code Online (Sandbox Code Playgroud)

但这就是'ê°€.txt'.

我觉得UTF8编码的字符串足以打开Windows下的任何文件名,因为我似乎依稀记得一些Windows应用程序传递(char*),而不是(wchar_t*),并且没问题.

任何人都可以对此有所了解吗?

windows unicode ntfs

41
推荐指数
3
解决办法
4万
查看次数

PHP使用非拉丁文件名检测文件系统编码/保存文件

我需要使用PHP在文件系统上保存带有非拉丁文件名的文件.

我想让这项工作跨平台.我怎么知道我可以使用什么编码来编写文件?我知道许多现代文件系统都是基于UTF-8(这是正确的吗?),但我怀疑Windows XP(例如).

那么,是否有一个强大的检测机制?

php filesystems unicode

8
推荐指数
1
解决办法
2612
查看次数

php库在windows上提供utf-8文件功能?

我正在开发一个执行大量路径名操作的项目.它在Mac OS X上运行正常,但令我惊讶的是,在Windows 上无法使用utf-8编码字符串调用realpath等函数.这是因为Windows上的setlocale不支持utf-8:

PHP:Windows 7中的setlocale

http://msdn.microsoft.com/en-us/library/x99tb11d.aspx

http://www.phpwact.org/php/i18n/utf-8

我可以创建在内部调用utf8_encodeutf8_decode的包装函数,但是php中有很多文件函数,这给我带来了很大的负担.

此外,该项目是开源的,因此当用户尝试在他们自己的代码中使用我的字符串(所有这些都是面向Web的)来读/写文件时,用户可能会认为它是破坏的.

有没有提供utf-8版本的主要php文件功能的库?我更喜欢扩展名上的自包含目录,以便我可以将其与我的代码捆绑在一起.

我担心如果我找不到像这样的库,那可能是因为我不适合跨平台开发而导致php无法治愈的致命弱点.我也很好奇其他语言如ruby,python和c ++是如何解决这个问题的,如果他们这样做的话.如果没有,这可能只是对Windows的另一次打击,我将不得不找出另一种解决方法.

php windows encoding file utf-8

5
推荐指数
1
解决办法
164
查看次数

标签 统计

php ×2

unicode ×2

windows ×2

encoding ×1

file ×1

filesystems ×1

ntfs ×1

utf-8 ×1