Ticket #287 (closed enhancement: fixed)
unicode under windows
| Reported by: | setosha | Owned by: | michael |
|---|---|---|---|
| Priority: | normal | Component: | FFmpeg |
| Version: | unspecified | Keywords: | unicode windows |
| Cc: | setosha@… | Blocked By: | |
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
It will be nice to make unicode wrapper for main() under win32.
somthing like this
int wmain(int argc, wchar_t* argv[])
{
char** cargs = new char*[argc];
for(int i=0; i<argc; ++i)
{
int len = WideCharToMultiByte(CP_UTF8, 0, argv[i], -1, NULL, -1, NULL, NULL);
if(len < 0)
len = 0;
cargs[i] = new char[len+1];
len = WideCharToMultiByte(CP_UTF8, 0, argv[i], -1, cargs[i], len, NULL, NULL);
cargs[i][len] = 0;
}
int ret = ffmpeg_main(argc, cargs); // rename your main
for(int i=0; i<argc; ++i)
delete[] cargs[i];
delete[] cargs;
return ret;
}
ffmpeg -metadata treats input char strings as utf8 strings, but under windows it's not true. They comes to main() as local single char encoding. Determinate local encoding in tagger not always right. Because some symbols may not covered by local encoding
Change History
Note: See
TracTickets for help on using
tickets.



But opening files trough fopen or fstream. Those function will fails on symbols which not in latin1 codepage