Thank you, Eugene, I've just tried the code, and it works exactly.
It's a nice solution.
Is there a better one?
Maybe someone has made a Unicode version, replacing std::string by
std::wstring in the lib-code CryptoPP.


On Jun 26, 2:15 am, Eugene Zolenko <[email protected]> wrote:
> That's not CryptoPP problem, but rather broken standard C++ unicode
> support.
>
> On windows you can use non-standard extention to fstreams -- they can
> be created from FILE handles, and FILEs can be created using _wfopen.
> And FileSink/Source can be created using fstreams.
>
> std::wstring path = L"D:\bla.txt";
> FILE* handle = _wfopen(path, L"rb");
> std::ifstream file(handle);
> CryptoPP::FileSource(file, ...);
>
> On Linux you will have to convert you std::wstring into UTF8 encoded
> std::string first. (Using your favorite UTF8 conversion libraries :)).
>
> Note that using UTF8 converted string on windows doesn't seem to work.
>
> On Jun 24, 10:10 pm, Kincorn <[email protected]> wrote:
>
>
>
> > I'm a new user, and Crypto++ is really wonderful and powerful,
> > haha ...
>
> > When using FileSink with path including non-ascii chars (e.g.
> > chinese), I've got the exception:
> > "FileSink: error opening file for writing: D:\Project\Crypto\测试
> > \privkey.txt"
> > But it's well run in ascii environment.
>
> > And then, I found out that something's wrong in function wbstowcs_s()
> > in STL class fstream as the default local setting is C-Locale. So I
> > can call function setlocale(LC_ALL, szCodePage) to resolve it, but
> > it's really troubled, isn't it? And the key-problem is, when I use a
> > special CodePage, it cann't work in another CodePage environment!
>
> > And my project is unicode-based, all the code like "std::string, char
> > [], ..." in Crypto++ may result unpredictable issues.
>
> > Has CryptoPP got the unicode version? If not, how can I fix the
> > problem?
> > Thanks for your advice...
>
> > Thanks,
> > Kincorn
>
> > Development environment:
> > PC x86
> > Windows XP SP2
> > Visual Studio 2005- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.
-~----------~----~----~----~------~----~------~--~---

Reply via email to