I'm learning ruby and try to get the filename from a ftp server. The string
I got was encoded in *gb2312(simplified Chinese)*, It's success in most
cases with these codes:

str = str.force_encoding("gb2312")
str = str.encode("utf-8")

but it will make an error "in encode': "\xFD" followed by "\x88" on GB2312
(Encoding::InvalidByteSequenceError)" if the string contains the symbol "["
 or "".

Then I use

force_encoding("gb2312").valid_encoding?

to detect if all filename strings were encoded by gb2312, some of them
return false. I think I must deal with a string list that's in mixed
character encodings. Help me! Thank you!