Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php windows iconv ('utf-8', 'cp1251', $text) не работает / 4 сообщений из 4, страница 1 из 1
16.08.2013, 22:18
    #38369507
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php windows iconv ('utf-8', 'cp1251', $text) не работает
добрый день.
Не работает хоть тресни. Черт пойми в чем дело. Входная строка точно utf-8
...
Рейтинг: 0 / 0
17.08.2013, 00:26
    #38369572
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php windows iconv ('utf-8', 'cp1251', $text) не работает
error_reporting(-1);
...
Рейтинг: 0 / 0
17.08.2013, 00:38
    #38369579
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php windows iconv ('utf-8', 'cp1251', $text) не работает
Che0,

Огласите исходные данные, ожидаемый результат и полученный результат.
...
Рейтинг: 0 / 0
17.08.2013, 01:37
    #38369599
Che0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php windows iconv ('utf-8', 'cp1251', $text) не работает
Вот такая функция меня выручила.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
protected   function curl_exec_utf8($ch) {
        $data = curl_exec($ch);
         if (!is_string($data)) return $data;

        unset($charset);
        $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);

        /* 1: HTTP Content-Type: header */
        preg_match( '@([\w/+]+)(;\s*charset=(\S+))?@i', $content_type, $matches );
        if ( isset( $matches[3] ) )
            $charset = $matches[3];

        /* 2: <meta> element in the page */
        if (!isset($charset)) {
            preg_match( '@<meta\s+http-equiv="Content-Type"\s+content="([\w/]+)(;\s*charset=([^\s"]+))?@i', $data, $matches );
            if ( isset( $matches[3] ) )
                $charset = $matches[3];
        }

        /* 3: <xml> element in the page */
        if (!isset($charset)) {
            preg_match( '@<\?xml.+encoding="([^\s"]+)@si', $data, $matches );
            if ( isset( $matches[1] ) )
                $charset = $matches[1];
        }

        /* 4: PHP's heuristic detection */
        if (!isset($charset)) {
            $encoding = mb_detect_encoding($data);
            if ($encoding)
                $charset = $encoding;
        }

        /* 5: Default for HTML */
        if (!isset($charset)) {
            if (strstr($content_type, "text/html") === 0)
                $charset = "ISO 8859-1";
        }

        /* Convert it if it is anything but UTF-8 */
        /* You can change "UTF-8"  to "UTF-8//IGNORE" to
ignore conversion errors and still output something reasonable */
        if (isset($charset) && strtoupper($charset) != "UTF-8")
            $data = iconv($charset, 'CP1251', $data);

        return $data;
    }

,
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php windows iconv ('utf-8', 'cp1251', $text) не работает / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]