http://www.perlmonks.org?node_id=913807


in reply to Re^10: Japanese character in Linux
in thread Japanese character in Linux

Well, I would consider using "Encode::decode_utf8" very wrong here. At least from your previous messages it followed, that the data inserted into database was in UTF-16 encoding, so when you apply "decode_utf8" function to it, you create a mess and nothing else. Of course this function does not hurt any of pure ASCII data.

You should use "Encode::decode("UTF-16", $_)".

Replies are listed 'Best First'.
Re^12: Japanese character in Linux
by Anonymous Monk on Jul 14, 2011 at 12:31 UTC

    We have resolved the issue Following changes were done in perl Loader to handle Japanese. Env variable setting :

    $ENV{'NLS_NCHAR'} = 'AL32UTF8';

    Encoding from Shift JIS to UTF8 after data is fetched from Sybase:

    Encode::from_to($sInstrumentNameJ, "shiftjis", "utf8"); #added for te +sting Encode::from_to($sInstrumentShortJ, "shiftjis", "utf8"); #added for t +esting

    Binding Japanese data parameters to be passed as below

    use DBD::Oracle qw(:ora_types ORA_OCI SQLCS_NCHAR ); $dbGOSTky_sth->bind_param(":sInstrumentNameJ",$sInstrumentNameJ,{ora_c +sform => SQLCS_NCHAR}); $dbGOSTky_sth->bind_param(":sInstrumentShortJ",$sInstrumentShortJ,{ora +_csform => SQLCS_NCHAR});