Master-X
Форум | Новости | Статьи
Главная » Форум » Хостинги / Домены / Железо » 
Тема: UTF-8 мать иё
цитата
14/08/16 в 00:05
 S_Flash
Создаю в саблайме док UTF-8 UNIX с SQL командами test.sql.


Заливаю на сервер бинарном режиме.
file -bi test.sql
text/plain; charset=utf-8

открываю в vim test.sql, русские символы отображаются как:


Та же песьня, если загнать в MySQL
mysql -u tester -p tester < test.sql
SELECT * FROM tester WHERE id = 8121734;




Бля, ну что ж за хуйня! Вроде бы же UTF-8 как раз и придуман, чтоб решить эти проблемы. Может русский текст вставлен был из другого дока, где была досовская кодировка? Но схера тогда он в саблаймовском UTF-8 документе корректно отображался?
ПС. Кстати под виндой во вьювере Lister (Total Commander) текст становится читаемым только при ручном выборе UTF-8 и обязательно ANSI (Windows Characters). ANCII - не катит.
цитата
14/08/16 в 04:58
 Magistrator
ты бы структуру таблицы показал штоле...
цитата
14/08/16 в 08:57
 S_Flash

Код:

CREATE TABLE IF NOT EXISTS `tester` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `text` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `text` (`text`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
цитата
14/08/16 в 09:50
 Magistrator
1. попробуй вставить данные в таблицу и прочитать их непосредственно на сервере. работает ли кодировка?
2. залей файл на сервер как текстовый.
3. если у тебя данные в виде русского и английского текста, то проще это все вставить в базу в текущей кодировке, а потом уже сконвертировать в юникод.
цитата
14/08/16 в 12:27
 S_Flash
Magistrator писал:
1. попробуй вставить данные в таблицу и прочитать их непосредственно на сервере. работает ли кодировка?

Пробовал добавляется.

Magistrator писал:
2. залей файл на сервер как текстовый.

Проблема ведь не в переносе строк..

Magistrator писал:
3. если у тебя данные в виде русского и английского текста, то проще это все вставить в базу в текущей кодировке, а потом уже сконвертировать в юникод.

Текуцщая и есть UTF-8
цитата
14/08/16 в 12:37
 Magistrator
ты не понял.

1. добавь строку в русской кодировке через мускульную консоль. потом сделай выборку и посмотри, что получилось.

2. залей все же как текстовый файл, а не бинарник.
цитата
14/08/16 в 12:45
 S_Flash
Как я понял проблема в ASCII и ANSI..
цитата
14/08/16 в 12:47
 Magistrator
ну ну

Последний раз редактировалось: Magistrator (14/08/16 в 12:53), всего редактировалось 2 раз(а)
цитата
14/08/16 в 12:51
 JM
ну у меня через шелл всегда такая же фигня icon_smile.gif
а через phpadmin всё ровно... правда все таблички utf8_general_ci
цитата
14/08/16 в 15:54
 xjam
Убедись, что в настройках терминала стоит UTF-8
в путти: Window - Translation
цитата
14/08/16 в 21:40
 Stek
Попробуй в качестве первого запроса вставить :
SET CHARSET 'utf8';
цитата
14/08/16 в 22:49
 S_Flash
1) Кроче, попробовал сначала корректные дамппы создать. Оказывается, если создавать через блядский Adminer и через mysqldump, то получаются довольно разные по кодировке sql дампы! При этом adminer хоть и пишет utf8, но лепит туда хер пойми что.
Но это не до конца решило пролему, а точнее не решило. Хотя под линукс уже файл можно было просмотреть редактором в utf8, что и подсказало, что способ дампа решает многое.
2) Сделал, как советовал Stek, только указал при дампе --default-character-set=utf8
И только тогда получилось адекватно влить данные!
цитата
15/08/16 в 00:01
 dizziness
кактус походу вставляет smail101.gif smail54.gif
цитата
15/08/16 в 00:28
 dizziness
S_Flash писал:
1) Кроче, попробовал сначала корректные дамппы создать. Оказывается, если создавать через блядский Adminer ...




ну раз минусанул) ты бля дебил просто, элементарно загуглить тупняковые вопросы не в состоянии, тебе самому за себя не стыдно ?
цитата
15/08/16 в 00:32
 dizziness
Цитата:
то получаются довольно разные по кодировке sql дампы


гугл походу для тупых сделали, и стековерфлоу, этот еблан на мастере тупые вопросы решил заливать facepalm.gif


Эта страница в полной версии