Я разбираю rss новостные ленты из более чем 10 разных языков.
Весь синтаксический анализ выполняется в java, и данные хранятся в MySQL до того, как мои API, написанные на php, отвечают на клиентов.
Когда я читаю данные, я постоянно сталкиваюсь с мусорными символами.
Что я пробовал:
Когда я запускаю файл jar вручную, чтобы вставить данные, символ выглядит нормально. Но когда я устанавливаю cronjob для одного и того же файла jar, я снова сталкиваюсь с проблемой.
На английском языке я особенно сталкиваюсь с такими проблемами, как этот и на других языках, характер кажется совершенно мусорным, и я не могу даже реконструировать одного персонажа.
Есть ли что-то, что мне не хватает?
Образцы мусора:
Гуджарати : «àª ° ૠલàªμà «‡ મૠસાઠ«àª ° ૠપાàª, સામાન àªšà «<ઠ° à« € ઠ¥ àª¶à «‡ ઠ¤à «<મળશૠ‡ àªμળતઠ°! »
Малиалам : «à'¨àμ ‡ à'ªààààªà'¾à'³à'¿à'²àμ ‡ à'• àμà' • àμà'³àμà'³ à'• àμ <à'³àμâ € à'¨à'àà '° à' • àμà' • àμ à'• àμà' ± à'šàμà'šàμ "
Английский : Президиум банка Bank расширяет возможности блоков питания в финансовом секторе
 Гуджарати начинает «правильно»?  И Малиалама начинается, верно?  И английский должен был включать Bureau's . 
Это классический случай
Bureau закодировано в подмножестве ascii / latin1 utf8, но ' не апостип ascii»). SET NAMES latin1 (или set_charset('latin1') или …), вероятно, по умолчанию.  (Это должно было быть utf8 .) CHARACTER SET latin1 .  (Или, возможно, это было унаследовано из таблицы / базы данных.) (Это должно было быть utf8 .) Исправлением для данных является «2-шаг ALTER».
 ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...; ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...; 
  где длины достаточно велики, а другие «…» имеют что-то еще ( NOT NULL и т. д.) уже в столбце. 
  К сожалению, если у вас есть много столбцов для работы, это займет много ALTERs.  Вы можете (должны) MODIFY все необходимые столбцы для VARBINARY для одной таблицы в паре ALTERs . 
  Исправление для кода – установить utf8 в качестве соединения;  это зависит от api, используемого в PHP.  ALTERs изменят определение столбца. 
редактировать
  У вас есть VARCHAR с неправильным CHARACTER SET .  Следовательно, вы видите Mojibake как રેલ .  Большинство конверсионных методов пытаются сохранить રેલ , но это не то, что вам нужно.  Вместо этого, делая шаг к VARBINARY сохраняет бит, игнорируя старое определение бит, представляющих символы с латинским кодированием.  Второй шаг снова сохраняет биты, но теперь утверждает, что они представляют символы utf8.