Invalid argument for file creating

hi
I use song_title to creat a file named by song_title.I have many song
titles to create many files.but unfortunately,some of song titles
contain special characters,such as [ ,which leads the following error:

Errno::EINVAL in Lyric spiderController#scrap_one_category
Invalid argument - e:/rails/lyric/public/song/e/Energy/
[ar:Energy.lrc

I use the following codes to create and write to files:

File.open(singer_dir+"/"+UTF8_TO_GBK.iconv(song_title)+".lrc",‘w’)do
|f|

f.write(lyric_initial_data)

end

It is impossible to drop those special characters individually,and they
are valid file names on my windows system when i manually create the
file using them.
I have used the CGI escape methods,but the resulted filename was not
what i want.

how to keep those characters for file name,and prevent the error
happens?

hi
can you help me? thank you!

hi
is there any method to do it? thank you!

I don’t have any direct experience with this, but perhaps you could
begin isolating the problem by trying to directly pass a hard-coded
string as in
File.open(“this_is_the_title.lrc”,“w”),
sidestepping the filename creation process.

Phillip wrote:

I don’t have any direct experience with this, but perhaps you could
begin isolating the problem by trying to directly pass a hard-coded
string as in
File.open(“this_is_the_title.lrc”,“w”),
sidestepping the filename creation process.

Thank you,phillip.I am driven mad by those characters and encoding.