If its possible and someone knows a way to actually implement this please let me know
Here's the sort of thing I had in mind -- it's limited but simple, and will trap the most likely problems (but you'll need to figure out what to do in your cgi application when those problems come up). I haven't tested it, except to confirm that it compiles, and to make sure that this sort of operation works as hoped for (at least, it did on macosx):
my_open( FH, ">", "foo.bar" ) or die "foo.bar: $!";
#...
sub my_open {
my ( $fh, $mode, $name ) = @_;
open( $fh, $mode, $name );
}
Unfortunately, if the caller tries to pass a lexically scoped scalar as the filehandle arg, that doesn't work. There's a way around that, but I haven't tried to look it up. (Maybe other monks know how off the top of their heads.) Since the OP code appears to be using the old UPPERCASE style file handles, the module as provided should do okay.
To work this into your cgi apps, store the code as "GreekFile.pm" in one of the @INC paths, and edit your cgi scripts that do file i/o so they include:
use GreekFile qw/gr_open gr_opendir gr_readdir gr_glob/;
# or just the relevant subset of these functions
Then, wherever you have open( FH, "<$filename" ) simply change that to gr_open( FH, "<", $filename ) assuming that $filename is a utf8 string. Similarly for opendir, readdir and glob calls. Just use utf8 strings in your app -- all the conversion to and from CP1253 for file names is handled inside this module.
| [reply] [d/l] [select] |
thank you graff but this stuff is a little complicated for me, cause i ahve never sued a perl moule in the past and calls to it.
Except that i dont like the idea of us programmers do an extra work to tell the WinXP OS how to treat our filenames and contents.
What i have in my head is to find an OS option(maybe a registry option) that will tell stupid windows to actully treat the filenames in the same manner as it treats the file contents.
| [reply] |
i have never used a perl moule in the past and calls to it
Yes you have, and it's not that complicated, and get used to it. It's called "learning how to use a programming language to get things done".
i dont like the idea of us programmers do an extra work to tell the WinXP OS how to treat our filenames and contents.
Yeah, it would be swell if us programmers didn't have to do any extra work... we could spend more time outdoors. Oh well, get used to it.
What i have in my head is to find an OS option (maybe a registry option) that will tell stupid windows to actully treat the filenames in the same manner as it treats the file contents.
Sounds nice, good luck with that.
| [reply] |
Well, I have been using Linux for a while now, but it seemed to me that last time I booted it, it used utf8 as default. I may be mistaken, but I used without any problem japanese, chinese and french filenames.
You may yet find this page interesting.
| [reply] |