in reply to How to detect the OS's current encoding?

Let's review. Suppose you have a file with 1-byte name, "\xa1". IIUC that when getOpenFile returns this file, it returns 2-byte string, something like "\xc0\xa1", without utf8 flag, is that correct? In this case, getOpenFile seems to be flawed, and you probably should find how to make it return exact file name, without converting it to utf8.
  • Comment on Re: How to detect the OS's current encoding?

Replies are listed 'Best First'.
Re^2: How to detect the OS's current encoding?
by chaoslawful (Acolyte) on Mar 01, 2007 at 15:30 UTC
    Yep, actually I have tried getOpenFile, Tk::FBox and Tk::FileSelect, and only Tk::FileSelect could find out the exact path without transcoding to UTF-8. It shows up a Tk-style selection dialog but can't display CJK characters correctly. Worse in the case of Tk::FBox, which also shows up Tk-style dialogs but appears to be unable to handle CJK characters in the path (error message comes out when you select one). Only getOpenFile can open OS's native file selection dialog and show non-latin1 characters out.

    In my opinion, a generic way to get the OS's current character encoding would be very helpful not only in pathname transcoding but also for many I18N applications. :)