Форум об интернет-маркетинге
Вернуться   Форум об интернет-маркетинге > Технические вопросы > Веб-строительство

Ответ
 
Опции темы
Старый 31.08.2020, 13:47   #1
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,367
Сказал(а) спасибо: 24,645
Получил(а) "Спасибо": 13,454
Нарушения: 0/0 (0)
Репутация: 1085558

Thread Starter PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Помогите, я совсем чего-то отупел...

Суть проблемы.

Есть файл csv из excel, табличка, сохранена в формате csv(MS-dos).
Там много полей через разделитель. Но для примера моей проблемы такого содержания хватит:


Далее открываю его так:
PHP код:
    if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {    
        
move_uploaded_file($_FILES['myfile']['tmp_name'], "test.csv");

        if ((
$fp fopen("test.csv""r")) !== FALSE) {
            while ((
$data fgetcsv($fp0";")) !== FALSE) {
                
$list[] = $data;
            }
            
fclose($fp);
        }

Т.к. файл в непонятной кодировке, перекодю его в utf-8:
PHP код:
        echo mb_convert_encoding($list[0][0],"utf-8","cp866"); 
Выводит только:
Код:
- винтовой фундамент
И так со всеми строками кириллицы. Если вначале ячейки не кириллица, то выводит все нормально...

В общем дурдом какой-то, не могу понять в чем причина. Помогите

P.S. iconv выдает такой же беспредел...

P.S.S. Как я понял, режет, если первая буква заглавная... Как это починить, братцы? Памагити
ziliboba0213 на форуме   Ответить с цитированием
Старый 31.08.2020, 13:51   #2
Chikk
[censored]
Академик
 
Регистрация: 24.06.2020
Адрес: Катманду
Сообщений: 1,135
Сказал(а) спасибо: 1,031
Получил(а) "Спасибо": 1,835
Нарушения: 0/0 (0)
Репутация: 8915
Отправить сообщение для Chikk с помощью ICQ

По умолчанию Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

ziliboba0213, на локалке и из-под Виндуса? Так там вечные грабли с этим. Проще взять Notepad++ и сразу файл в UTF конвертнуть.
Chikk на форуме   Ответить с цитированием
Сказали спасибо:
Старый 31.08.2020, 13:53   #3
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,367
Сказал(а) спасибо: 24,645
Получил(а) "Спасибо": 13,454
Нарушения: 0/0 (0)
Репутация: 1085558

Thread Starter Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Цитата:
Сообщение от Chikk Посмотреть сообщение
ziliboba0213, на локалке и из-под Виндуса? Так там вечные грабли с этим. Проще взять Notepad++ и сразу файл в UTF конвертнуть.
Не, на хостинге... Проще, конечно, я просто не хочу сам этим заниматься, мне надо манагера обучить
ziliboba0213 на форуме   Ответить с цитированием
Старый 31.08.2020, 14:02   #4
Chikk
[censored]
Академик
 
Регистрация: 24.06.2020
Адрес: Катманду
Сообщений: 1,135
Сказал(а) спасибо: 1,031
Получил(а) "Спасибо": 1,835
Нарушения: 0/0 (0)
Репутация: 8915
Отправить сообщение для Chikk с помощью ICQ

По умолчанию Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

ziliboba0213, ну хз. У меня работает. На локалке и из-под Винды. Может на хосте твоём нет всех этих mb_чего-то там?
Chikk на форуме   Ответить с цитированием
Сказали спасибо:
Старый 31.08.2020, 14:06   #5
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,367
Сказал(а) спасибо: 24,645
Получил(а) "Спасибо": 13,454
Нарушения: 0/0 (0)
Репутация: 1085558

Thread Starter Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Цитата:
Сообщение от Chikk Посмотреть сообщение
ziliboba0213, ну хз. У меня работает. На локалке и из-под Винды. Может на хосте твоём нет всех этих mb_чего-то там?
Хмм... Странно, мой код и пример работает?

Ща на другом хостинге попробую... Ага, на нормальном хостинге работает

И во что мне spaceweb тыкать носом, чтобы починили?
ziliboba0213 на форуме   Ответить с цитированием
Старый 31.08.2020, 14:11   #6
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 608321

По умолчанию Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Димас, при передаче файла штырь получаешь. Файл передается у тебя без явного указания кодировки, а прием файлов осуществляется либо в кодировке конечного скрипта, либо в - передающего. Если скрипт твой utf-8 принимающий, то ты до отправки должен файл кодирнуть в utf-8.

Либо, передать заголовок должен при отправке исходника, что это cp866. если заголовок не отправишь - файл автоматом расценивается, как юникод.

Вот если ты передашь архив, а на серваке его распакуешь, то там твой код уже должен работать норм, там архив придет как и надо в юникоде, а файл в нем будет в любой кодировке уже правильно сохранен.
XPraptor вне форума   Ответить с цитированием
Старый 31.08.2020, 14:13   #7
Chikk
[censored]
Академик
 
Регистрация: 24.06.2020
Адрес: Катманду
Сообщений: 1,135
Сказал(а) спасибо: 1,031
Получил(а) "Спасибо": 1,835
Нарушения: 0/0 (0)
Репутация: 8915
Отправить сообщение для Chikk с помощью ICQ

По умолчанию Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Цитата:
Сообщение от ziliboba0213 Посмотреть сообщение
Хмм... Странно, мой код и пример работает?
Ну не совсем твой. Выпилил ненужное для теста, получилось вот так:

PHP код:
<?php
    
if (($fp fopen("222.csv""r")) !== FALSE) {
        while ((
$data fgetcsv($fp0";")) !== FALSE) {
            
$list[] = $data;
        }
        
fclose($fp);
    }

    
$convertedText =  mb_convert_encoding($list[0][0], 'utf-8''cp866');
    
var_dump($convertedText);
    
?>
А что до Свеба, там, вроде как, всё это есть. Ты сам файл обработчика - php это твоё, в UTF сохранил? Или по трезвости этот вопрос пропустил, в своём еретическом белом блокноте?
Chikk на форуме   Ответить с цитированием
Старый 31.08.2020, 14:15   #8
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,367
Сказал(а) спасибо: 24,645
Получил(а) "Спасибо": 13,454
Нарушения: 0/0 (0)
Репутация: 1085558

Thread Starter Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Не, тупо мой пример работает на другом хостинге, даже без загрузки файла на сервер (просто руками загрузил):
PHP код:
        if (($fp fopen("test.csv""r")) !== FALSE) {
            while ((
$data fgetcsv($fp0";")) !== FALSE) {
                
$list[] = $data;
            }
            
fclose($fp);
        }
        echo 
mb_convert_encoding($list[0][0],"utf-8","cp866"); 
На sweb: товой фундамент
На другом: Винтовой фундамент

Цитата:
Сообщение от Chikk Посмотреть сообщение
Ты сам файл обработчика - php это твоё, в UTF сохранил? Или по трезвости этот вопрос пропустил, в своём еретическом белом блокноте?
Да там одинаковый файл закинул на разные хостинги просто...
Код тестовой страницы простой:
PHP код:
<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8' />
    <title></title>
</head>
<body>
<?
        
if (($fp fopen("test.csv""r")) !== FALSE) {
            while ((
$data fgetcsv($fp0";")) !== FALSE) {
                
$list[] = $data;
            }
            
fclose($fp);
        }
    echo 
mb_convert_encoding($list[0][0],"utf-8","cp866");
?>
</body>
</html>
ziliboba0213 на форуме   Ответить с цитированием
Старый 31.08.2020, 14:20   #9
XPraptor
Думаю, что надо худеть
Академик
 
Аватар для XPraptor
 
Регистрация: 22.06.2020
Сообщений: 1,791
Сказал(а) спасибо: 1,526
Получил(а) "Спасибо": 1,939
Нарушения: 0/0 (0)
Репутация: 608321

По умолчанию Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Цитата:
Сообщение от ziliboba0213 Посмотреть сообщение
Не, тупо мой пример работает на другом хостинге, даже без загрузки файла на сервер (просто руками загрузил):
Так в этом и проблема - при передаче ты коверкаешь данные.
А кода файл уже на хостинге, то там нет проблем.
Указывай кодировку при передаче, или кодируй в юникод файл при передаче.
XPraptor вне форума   Ответить с цитированием
Старый 31.08.2020, 14:21   #10
ziliboba0213
Позитив =)
Академик
 
Аватар для ziliboba0213
 
Регистрация: 21.06.2020
Адрес: Санкт-Петербург
Сообщений: 4,367
Сказал(а) спасибо: 24,645
Получил(а) "Спасибо": 13,454
Нарушения: 0/0 (0)
Репутация: 1085558

Thread Starter Re: PHP - чтение csv файла из excel с киррилицей "OEM - русская" cp866

Цитата:
Сообщение от XPraptor Посмотреть сообщение
Так в этом и проблема - при передаче ты коверкаешь данные.
А кода файл уже на хостинге, то там нет проблем.
Указывай кодировку при передаче, или кодируй в юникод файл при передаче.
Выше ответил Или я не понял тебя... Я в примере просто через ftp закинул файл csv...
ziliboba0213 на форуме   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Серче удалили почти все разделы "Не про работу" Reborn S.E. Курилка 1032 28.10.2020 23:22
Опасны ли "игры" с накруткой поведенческих факторов Datot Продвижение и оптимизация сайтов 51 25.10.2020 13:28
Низкобюджетная схема раскрутки молодого инфосайта с помощью "микро"-частотников Generich Продвижение и оптимизация сайтов 44 05.10.2020 08:44
"Мои друзья — известные поэты…" День памяти Владимира Высоцкого - 40 лет Alex Klo Курилка 34 26.07.2020 16:08
Ну и зачем сделали все подразделы "Не про работу" только для активных пользователей? Кокетыч О форуме 113 23.07.2020 17:28


Текущее время: 18:14. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc. Перевод: zCarot