Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > две строки одинакового содержания, но разной длинн


Автор: Serious2008 18.10.2012, 01:03
Здравствуйте вот есть такая проблема. Мне нужно сравнивать данные из файла и из таблицы, из файла беру при помощи одной библиотеки. И по итогу вот какая вещь получается на выходе вар-дампа. Пол дня вожусь не знаю, как его научить приводить в нормальный вид.
Другую библиотеку не вариант, т.к. эта библиотека распарсивает именно Книги Excel.

Вот пример того что выдаёт он на вар_дампе.
Код

string(54) "EVIDENCE ELECTRONIQUE NEW with cable and plug 500 Вт" 
string(224) "EVIDENCE ELECTRONIQUE NEW with cable and plug 500 Вт"


Как мне вторую строчку привести в кошерный UTF-8?
разные варианты iconv пробовал, всё равно 224, я даже не догадываюсь какой там формат.

Длинная строка получается вот таким вот хитрым образом

function uc2html($str) {
    $ret = '';
    for( $i=0; $i<strlen($str)/2; $i++ ) {
        $charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
        $ret .= '&#'.$charcode;
    }
    return $ret;
}

Всвязи с чем возникает вопрос, как-нибудь можно из этого сделать нормальную строку? Каждый символ состоит из чаркодов.

Автор: ksnk 18.10.2012, 06:08
http://www.php.net/manual/en/function.htmlspecialchars-decode.php
?

Добавлено через 1 минуту и 49 секунд
Вероятно, точнее - http://www.php.net/manual/en/function.html-entity-decode.php

Автор: Serious2008 18.10.2012, 09:29
ksnk, 

не одна из ваших функций изменений не дала.
так же не какие urldecode не дали изменений :(


Даже нашёл в семлпах вот такое

Код

<?php
$str = '!';
$quotes = html_entity_decode($str, ENT_QUOTES);
$noquotes = html_entity_decode($str, ENT_NOQUOTES);
$noquotesutf8 = html_entity_decode($str, ENT_NOQUOTES, 'UTF-8');
echo "quotes='$quotes', noquotes='$noquotes', noquotesutf8='$noquotesutf8'\n";
?>


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

Код

&#69&#86&#73&#68&#69&#78&#67&#69&#32&#69&#76&#69&#67&#84&#82&#79&#78&#73&#81&#85&#69&#32&#
78&#69&#87&#32&#119&#105&#116&#104&#32&#99&#97&#98&#108&#101&#32&#97&#110&#100&#32&#112&#108&#117&#103&#32&#53&#48&#48&#32&#1042&#1090



Преобразовал её  в такую (Если опять отобразиться символами, то я точно знаю что этот форум умеет преобразовывать тоже самое что сверху только с ; после каждого символа в нормальные символы)

EVIDENCE ELECTRONIQUE NEW with cable and plug 500 Вт


И результат не поменялся :(




Всё вопрос закрыт, всё таки добавление ; и последняя функция делают своё дело.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)