Как устранить Windows специальный символ `^ @` в Java

0

Моя работа, выполняющая некоторые процессы, такие как

  • Загрузка данных из csv в MySQL (таблица репликации миграции - из MSSQL)
  • читать данные MySQL для создания класса VO Java
  • Когда VO отредактировано, будет сохранено в MySQL (другая таблица)

Проблема в...

  • откройте файл CSV, я вижу специальный символ ^@
  • После LOAD DATA Затем выполните запрос SELECT, данные не содержат ^@
  • Тем не менее, я читал те же данные через Java и восстанавливал в другую таблицу. Он хранит \u0000

Как удалить этот \^0000?

Лучшее решение в моей текущей ситуации, я бы хотел обработать в java-коде...

FYI,

  • Дамп MSSQL, сделанный в ОС Windows (от клиента)
  • MySQL Загрузить данные в Windows (локальная среда для разработчиков)
  • Программа, выполняющая миграцию, находится на CentOS (Server)
Теги:
sql-server
csv

1 ответ

0

Я считаю, что ваш экспорт сбрасывает значения BIT как фактические "битовые символы", то есть BIT 0 становится \0 а BIT 1 становится \1.

Для удобства (и скорости) вы могли бы, возможно, проанализировать CSV, используя синтаксические анализаторы с этим параметром:

CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setSkipBitsAsWhitespace(false); //prevents treating \0 and \1 as blank space

CsvParser parser = new CsvParser(parserSettings);

Затем вы можете заменить \0 и \1 на символы 0 и 1 соответственно на столбцы, где они появляются.

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню