2017-02-06 6 views
0

У нас есть правильная и чистая строка json в текстовом столбце в Postgres, . Эта строка является своего рода конфигурационными данными, которые редко меняются.Управляющие символы в строке набора результатов

Строка json извлекается из java-кода, запущенного в веб-приложении на wildfly через запрос jdbi.

Только на системах Linux мы испытываем присутствие управляющих символов (?) При чтении строки из набора результатов (с помощью getString ("param_value")). Here Текст json сохраняется после чтения из набора результатов.

Любое предложение?

+0

Как вы подтвердили, что это «правильно и чисто»? Также покажите источник, который вы используете, чтобы сохранить текст json, который дает этот результат. – RealSkeptic

ответ

0

Я не знаю, ПОЧЕМУ это случается, но я тестировал код в модульном тесте с теми же результатами, полученными в среде сервера приложений (windows ok, linux ko). Кроме того, ничего не изменится после обновления драйвера jdbc и jdbi postgres.

Как Временное решение, чтобы избежать проблем при синтаксическом анализе JSON, строка замены выполняется из управляющих символов:

String jsonString = resultSet.getString("param_value") 
         .replaceAll("[\\x00-\\x1F\‌​\x7F\\x0A\\xfffd\\x2‌​0a]",""); 

Последовательность управляющего символа первоначально был взят из this post, а затем продлен на основании JSON разбора сообщений исключений.