|
楼主 |
发表于 2006-7-31 14:02:23
|
显示全部楼层
针对mono的几个gbk补丁
测试用例一(test1.cs):
[code:1]
using System;
using System.IO;
public class Test
{
public static void Main(string[] args) {
Console.WriteLine ("dir {0}, filter {1}", args[0], args[1]);
DirectoryInfo dirInfo = new DirectoryInfo(args[0]);
FileInfo[] filesInfo = dirInfo.GetFiles(args[1]);
foreach (FileInfo info in filesInfo)
{
Console.WriteLine(" file: {0}", info.Name);
}
}
}
[/code:1]
测试操作一:
mkdir 测试中文目录
touch 测试中文目录/测试中文文件1.txt
touch 测试中文目录/测试中文文件2.txt
touch 测试中文目录/测试中文文件3.txt
touch 测试中文目录/测试中文文件4.txt
mcs test1.cs
测试正常输出:
mono test1.exe 测试中文目录/ '*'
dir 测试中文目录/, filter *
file: 测试中文文件1.txt
file: 测试中文文件2.txt
file: 测试中文文件3.txt
file: 测试中文文件4.txt
如果输出不正常,比如输出乱码或无输出,请打附件中
mono-1.1.16.1-metadata-file-io-cjk.patch
补丁。
测试用例二(test2.cs):
[code:1]
using System;
using Mono.Unix.Native;
using Mono.Unix;
public class Test
{
public static void Main(string[] args) {
Console.WriteLine ("dir: {0}", args[0]);
IntPtr dir = Syscall.opendir(args[0]);
if (dir != IntPtr.Zero)
{
next:
Dirent file = Syscall.readdir(dir);
if (file != null)
{
Console.WriteLine(" file: {0}", file.d_name);
goto next;
}
Syscall.closedir(dir);
}
}
}
[/code:1]
测试操作二:
<使用上面建立的中文目录>
mcs -r:Mono.Posix test2.cs
测试正常输出:
mono test2.exe 测试中文目录/
dir: 测试中文目录/
file: .
file: ..
file: 测试中文文件1.txt
file: 测试中文文件2.txt
file: 测试中文文件3.txt
file: 测试中文文件4.txt
如果输出不正常,比如输出乱码或无输出,请打附件中
mono-1.1.16.1-Mono_Unix_Native_Syscall-cjk.patch
mono-1.1.16.1-Mono_Unix_Native_FileNameMarshaler-cjk.patch
补丁。
注意事项:
我的环境
set | grep -iR GBK
G_FILENAME_ENCODING=GBK
LANG=zh_CN.GBK
MONO_EXTERNAL_ENCODINGS=GBK
MP3_ID3_TAG_ENCODING=GBK
GBK改成GB18030应该也是没问题的。
MP3_ID3_TAG_ENCODING这个参数,用于beagle中设置默认的mp3 tag的编码。
补丁对应mono版本为:1.1.16.1 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|