- CSV Export encoding problem
12
WT форуми -> PHP MySQL ASP.NET -> CSV Export encoding problem
Създайте нова тема Напишете отговор 
Автор Съобщение
explozen
Турист
Турист

Регистриран на: 10/02/2011 9:15 pm

Support: 13
Bonus: 26
Мнения: 413
Мнение 30/08/2019 10:46 am     CSV Export encoding problem Отговорете с цитат


Здравейте,

Имам някакъв странен проблем...
Експортвам с PHP от базата данни в CSV. Когато има резултат на кирилица, данните излизат на шльокавица.
Някой имал ли е подобен проблем и ако да, може ли да сподели.

CSV Export encoding problem[/img]
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 123
Bonus: 239
Мнения: 3145
Мнение 30/08/2019 2:35 pm     Re: CSV Export encoding problem Отговорете с цитат


explozen написа:
Здравейте,

Имам някакъв странен проблем...
Експортвам с PHP от базата данни в CSV. Когато има резултат на кирилица, данните излизат на шльокавица.
Някой имал ли е подобен проблем и ако да, може ли да сподели.

CSV Export encoding problem[/img]

Таблицата и полетата трябва да са ти в енкодинг utf8_general_ci.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
explozen
Турист
Турист

Регистриран на: 10/02/2011 9:15 pm

Support: 13
Bonus: 26
Мнения: 413
Мнение 30/08/2019 3:21 pm      Отговорете с цитат


Такива са...
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 764
Мнение 30/08/2019 7:46 pm      Отговорете с цитат


Дай повече информация. Колации на база данни, как вадиш данните от базата данни (понякога се налага да използваш SET NAMES utf8, когато се свързваш с базата данни).

Също не знам как стои въпроса под Мак с регионални настройки и т.н., но например, имаш ли проблеми с кирилица на субтитри.

Друго също ми прави впечатление. Това не е utf8 шльокавица. На нещо друго прилича.
Дай повече информация с код да видим какви ги вършиш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
explozen
Турист
Турист

Регистриран на: 10/02/2011 9:15 pm

Support: 13
Bonus: 26
Мнения: 413
Мнение 31/08/2019 3:31 pm      Отговорете с цитат


http://prikachi.com/images/763/9640763V.png - Така ги експортвам.

Колацията на базата е utf8_general_ci.

Проблеми със субтитри не съм имал.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 764
Мнение 31/08/2019 5:43 pm      Отговорете с цитат


Направи си един тест, за да разбереш дали базата данни, извеждането от базата данни или нещо друго е проблема.


Вместо да използваш базата данни, направи си един тестови масив със същата структура и го попълни с кирилизирани стойности и го подай, да видиш дали изхода ще е същия. Ако имаш проблем отново, това означава, че базата данни ти е наред и трябва да търсиш проблема другаде.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 123
Bonus: 239
Мнения: 3145
Мнение 02/09/2019 9:35 am      Отговорете с цитат


https://www.php.net/manual/en/mysqli.set-charset.php
PHP code:
$mysqli->set_charset("utf8")

https://stackoverflow.com/questions/10331883/utf-8-php-and-mysqli-utf8
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
explozen
Турист
Турист

Регистриран на: 10/02/2011 9:15 pm

Support: 13
Bonus: 26
Мнения: 413
Мнение 02/09/2019 12:45 pm      Отговорете с цитат


Няма промяна с $conn->set_charset("utf8");
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 123
Bonus: 239
Мнения: 3145
Мнение 02/09/2019 2:33 pm      Отговорете с цитат


Защо не използваш file_put_contents ?

PHP code:

$data = file_get_contents($npath);
$data = mb_convert_encoding($data, 'UTF-8', 'OLD-ENCODING');
file_put_contents('tempfolder/'.$a, $data);

https://stackoverflow.com/questions/4839402/how-to-write-file-in-utf-8-format/15146274
Или по-кофти вариант:

PHP code:
function writeUTF8File($filename,$content) { 
$f=fopen($filename,"w");
# Now UTF-8 - Add byte order mark
fwrite($f, pack("CCC",0xef,0xbb,0xbf));
fwrite($f,$content);
fclose($f);
}


https://stackoverflow.com/questions/4839402/how-to-write-file-in-utf-8-format/15146274

Проблема е, че при създаване на файл ти трябва да му укажеш в какъв енкодинг да запазва. Ако стринга ти е UTF8 а ти му кажеш, че файла ще е ANSI ще ти прецака символите с маймуница.

https://stackoverflow.com/questions/11115533/php-file-put-contents-and-utf-8
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
explozen
Турист
Турист

Регистриран на: 10/02/2011 9:15 pm

Support: 13
Bonus: 26
Мнения: 413
Мнение 02/09/2019 3:28 pm      Отговорете с цитат


Оказа се че е от ексела. Когато го отворя през Google drive няма проблем Very Happy
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Изпрати мейла Посетете сайта на потребителя
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 57
Bonus: 114
Мнения: 764
Мнение 02/09/2019 7:17 pm      Отговорете с цитат


На мен по- ми се вярва да е операционната система и липсващи настройки някъде.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
dakata__92
Активен
Активен

Регистриран на: 02/08/2011 9:24 pm

Support: 123
Bonus: 239
Мнения: 3145
Мнение 03/09/2019 9:40 am      Отговорете с цитат


Revelation написа:
На мен по- ми се вярва да е операционната система и липсващи настройки някъде.

И на мен нещо подобно ми се върти, като мнение.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети