tinyfiledialogs 如何将文件保存在俄语命名文件夹中

tinyfiledialogs how to save file in russian naming folder

我正在使用 tinyfiledialogs lib,我能够将文件保存在名称为英文的文件夹中,但是当我尝试将完全相同的文件保存在名称类似于“Кот”的文件夹中时,换句话说,俄语字母我不能。

这是代码

IntPtr p = tinyfd_saveFileDialog(sDialogTitle, sInitialPathAndFile, 
            filterPatterns.Length, filterPatterns, sPatternDesc);

这是在我正在使用的 somelib 中定义的

        [DllImport("tinyfiledialogs", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        public static extern IntPtr tinyfd_saveFileDialog(string aTitle, string aDefaultPathAndFile, int aNumOfFilterPatterns, string[] aFilterPatterns, string aSingleFilterDescription);

有什么帮助吗?我是这个库的新手,找不到任何相关的基本信息。

该库似乎导出其函数的 ANSI 和 Unicode 版本(即 A 和 W 后缀)。所以你应该能够改变

CharSet = CharSet.Ansi

CharSet = CharSet.Unicode

pinvoke 封送拆收器将完成剩下的工作。

更新:我刚刚更正了 DLL 的 C# 导入中的许多问题。你能尝试使用新 DLL 的 3.6.0 版吗?

我是 tinyfiledialogs 的作者。首先确保您是从 sourceforge 站点 https://sourceforge.net/projects/tinyfiledialogs 而不是从任何 github 副本(通常已过时)获取它。

据报道,您应该使用 UTF-16 (wchar_t - CharSet = CharSet.Unicode) 调用。但是 UTF-8 (char = CharSet.Ansi) 现在也可以工作了。