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

Огласите исходные данные, ожидаемый результат и полученный результат.
...
Рейтинг: 0 / 0
php windows iconv ('utf-8', 'cp1251', $text) не работает
    #38369599
Che0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая функция меня выручила.
Код: 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
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php windows iconv ('utf-8', 'cp1251', $text) не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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