Search code examples
javajdbcpentahofirebirdjaybird

Set the charset for Firebird connection from Pentaho DI


I'm trying to set the connection Charset for my Firebird connection using Pentaho DI but still couldn't read the data in the right encoding.

I used many parameters like encoding , charSet,...etc but no luck.

enter image description here

enter image description here

Correct me what i have missed ?


Solution

  • You either need to use encoding with the Firebird name of the character set, or charSet with the Java name of the character set(*).

    WIN1256 is not a valid Java character set name, so the connection will fail. If you specify charSet, then you need to use the Java name Cp1256 or - with Jaybird 2.2.1 or newer - windows-1256.

    If this doesn't work then either Pentaho is not correctly passing connection properties, or your data is stored in a column with character set NONE in a different encoding than WIN1256 (or worse: stored in a column with character set WIN1256, but the data is actually a different encoding).

    *: Technically you can combine encoding and charSet, but it is only for special use cases where you want Firebird to read data in one character set, and have Jaybird interpret it in another character set.