2014-11-10 3 views
0

Я вытащил некоторые текстовые значения из базы данных, мне нужно разобрать этот текст, но когда я печатаю текст на консоли, у него есть «?» которые не видны в блокноте ++ и sqlyog. Ниже приведен пример:Строка с нежелательным символом в java

(некоторая символьная строка) ?????? (другая строка) ???

Мне нужно удалить их, но все мои усилия пошли напрасно. Я использовал метод replace replaceall и преобразовывал текст в массив символов и снова создавал текст, но он не работает. Как удалить эти '?' символы из текста?

Заранее спасибо.

+6

Вы идете об этом неправильно. Убедитесь, что вы используете правильную кодировку символов. –

+0

какой символ вы используете? возможно, попробуйте преобразовать character_set? например ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci; –

+0

И если вы хотите вникать в это больше, помните, что «?» символы почти наверняка не представляют собой актуальные вопросительные знаки 'U003F' в выводе. Скорее, они, вероятно, используются программным обеспечением (например, Notepad ++ или что-то еще до стека), чтобы указать персонажа, в котором у них нет глифа в текущем шрифте. Если вы хотите знать, что это такое на самом деле, присоедините отладчик и проверьте значения 'char' строки в этих индексах. –

ответ

0

См. Ответ в how-can-i-replace-non-printable-unicode-characters-in-java по этой теме.

Обратите внимание, что непечатаемые символы скорее всего попадают из таблицы базы данных или теряются при обмене между вашим Java-приложением и самой таблицей.

+0

Спасибо, тонна ... для меня работает. – user2335004

Смежные вопросы