Не могу вставить арабские символы в базу данных оракула

У меня возникли проблемы при чтении арабских символов из oracle в java с использованием драйвера JDBC. Основная проблема заключалась в том, что я не смог найти правильную кодировку символов для получения правильных данных, но я решил проблему вручную, используя этот метод:

public static String cleanORCLString(String s) throws UnsupportedEncodingException {

    byte[] bytes = s.getBytes("UTF16");
    String x = new String(bytes, "Cp1256");

    String finalS = x.substring(3);
    StringBuilder sb = new StringBuilder(finalS);

    for(int k = sb.length() - 1 ; k > 0 ; k--) {

        if(!isEven(k)) {

            sb.deleteCharAt(k);

        }

    }

    return sb.toString();
}

этот метод дает мне правильные символы, подобные показанным в базе данных, но когда я пытаюсь обновить / вставить арабские данные, он сохраняет неправильные символы. Например: мой текст сохранен в базе данных как «?????????» вместо "مرحبا".

Это способ подключения к базе данных Oracle.

URL = ORCLConnProperties.ORCL_THIN_PREFIX + orclProp.getIpAddress()
            + orclProp.getPortNumber() + ORCLConnProperties.ORCL_THIN_SUFIX;

// URL = jdbc:oracle:thin:@10.0.0.12:1521:ORCL


    System.out.println("URL: " + URL);

    Properties connectionProps = new Properties();
    connectionProps.put("characterEncoding", "Cp1256");
    connectionProps.put("useUnicode", "true");
    connectionProps.put("user", orclProp.getUserName());
    connectionProps.put("password", orclProp.getPassword());

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");

    } catch (ClassNotFoundException ex) {
        System.out.println("Error: unable to load driver class!");
        System.exit(1);
    }


    myDriver = new oracle.jdbc.driver.OracleDriver();

    DriverManager.registerDriver(myDriver);

    conn = DriverManager.getConnection(URL, connectionProps);

пожалуйста, помогите мне в решении этой проблемы? Благодарю.

Новое примечание:

Сама база данных не использует набор символов UTF16, но

«Драйвер JDBC OCI передает данные с сервера клиенту в наборе символов базы данных. В зависимости от значения переменной среды NLS_LANG драйвер обрабатывает преобразования набора символов: OCI преобразует данные из набора символов базы данных в UTF -8. Затем драйвер OCI JDBC передает данные UTF-8 в библиотеку классов JDBC, где данные UTF-8 преобразуются в UTF-16. "

эта заметка упоминается здесь:http://docs.oracle.com/cd/B10501_01/java.920/a96654/advanc.htm

Ответы на вопрос(2)

Ваш ответ на вопрос