Php url windows 1251

Заметки Лёвика

web программирование, администрирование и всякая всячина, которая может оказаться полезной

PHP iconv — кодировка из utf-8 windows-1251

При помощи функции php iconv (строго говоря, это не совсем функция PHP, она использует стороннюю библиотеку (есть iconv.dll и php_iconv.dll или iconv.so), которой может не быть на хостинге) легко преобразовать кодировку (например, из windows-1251 в utf-8 и наоборот:

$s = iconv( «cp1251″,»UTF-8», $s);
$s = iconv(«UTF-8», «windows-1251», $s);

Однако, если не работает iconv на хостинге, а преобразовать текст из одной кодировки в другую необходимо, можно воспользоваться сторонними функциями (на самом деле, встречал несколько вариантов — какой из них лучше.. или точнее “более рабочий” — не скажу).

Про преобразование UFT-8 сущностей я уже писал ранее , однако иногда требуется наоборот перевести текст из cp1251 в utf-8 — например.

Если не работает iconv

function iconv ($in_charset, $out_charset, $str) string — для преобразования из Windows в UTF-8 выполняем один из вызовов
iconv( «cp1251″,»UTF-8», $s);
iconv( «windows-1251″,»UTF-8», $s);
выдаёт пустую строку (если в $s нет английских символов — они в любой кодировке отображаются одинаково) на некоторых хостингах можно попробовать использовать функцию mb_convert_encoding — у неё другой порядок аргументов!
function mb_convert_encoding ($str, $to_encoding, $from_encoding = null) string

Т.е. чтобы преобразовать текст из кодировки windows-1251 в UTF-8 следует выполнить:
mb_convert_encoding($s,»UTF-8″,»windows-1251″);

iconv array для массива

В некоторых ситуациях преобразовать одномерный или многомерный массив из одной кодировки в другую (например, из utf8 в windows-1251) с сохранением ключей массива. Для решения, можно использовать несколько способов.
// если не требуется сохранять предыдущий массив, для экономии
// передаем его по ссылке, происходит замена внутри
function utf8to1251(&$text) <
$text = iconv(«utf-8», «windows-1251», $text); //without return
>
array_walk_recursive($array, «utf8to1251»);

Читайте также:  Biostar как установить windows с диска

Или, если требуется оставить исходный массив без изменений — можно воспользоваться:
$newArray = array_map(create_function(‘$v’, ‘return iconv(«utf-8», «windows-1251», $v);’), $oldArray);

Метки: iconv

Опубликовано Пятница, Октябрь 21, 2011 в 15:02 в следующих категориях: Без рубрики. Вы можете подписаться на комментарии к этому сообщению через RSS 2.0. Вы можете оставить комментарий. Пинг отключен.

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Комментарии (3) к записи “PHP iconv — кодировка из utf-8 windows-1251”

Как быть с запросом select к базе mssql не понимает кирилицу
“select
[Название]
,[номер]
, [Removed]
from imdb.dbo. Оконечное оборудование “;

Следует привести столбцы (или всю базу данных сразу) к соответствующему сравнению (кодировке)
ALTER DATABASE COLLATE Cyrillic_General_CI_AS

Или использовать Nvarchar

declare @test TABLE
(
Col1 varchar(40),
Col2 varchar(40),
Col3 nvarchar(40),
Col4 nvarchar(40)
)
INSERT INTO @test VALUES
(‘иытание’,N’иытание’,’иытание’,N’иытание’)
SELECT * FROM @test

В старом скрипте на php 5.3 работает
function conv($text) <
return iconv(’UTF-8′, ‘WINDOWS-1251′, $text);
>

Если изменяю версию php 5.6 то не перекодируется. Не подскажете?

Кодировка windows 1251 в сайтостроении

Кодировка windows 1251 была создана в начале 90 годов для русификации программных продуктов, выпускаемых корпорацией Microsoft :

  • 0xFF (25510) – это код, который зарезервирован для символа «я». В программах, которые не поддерживают чистый 8-ой бит, часто возникают непредсказуемые проблемы;
  • Нет псевдографики, которая присутствует в KOI8 , CP866 .

Ниже приведены символы из Code Page 1251 или сокращенно СР1251 ( числа под символами являются кодом в шестнадцатеричной системе такого же символа в Юникоде ):

Кодировка windows 1251 в html

Нередко у web-разработчиков и блогеров, обладающих различной квалификацией возникает проблема с кодировкой страниц: вместо подготовленного текста появляются неизвестные, нечитаемые символы. Чтобы разобраться с данной проблемой, необходимо понимать суть термина « кодировка страницы ».

Текст в памяти компьютера хранится в виде определенного количества байт, а не в том виде, в котором он отображается в текстовом редакторе. Каждый байт является кодом, который соответствует одному символу. Для того чтобы текст на странице отображался как следует, нужно сообщить браузеру, какую таблицу кодов для расшифровки и отображения он должен использовать.

Таблица кодировок не является универсальной, то есть, для расшифровки текста необходимо использовать ту, которая соответствует кодировке символов:

Читайте также:  Лучшие курсы по линукс

— между тегом и закрывающим его нужно прописать — исходя из этой строки, браузер будет использовать символы русского алфавита для отображения текста на странице.

Кодировка windows 1251 в PHP

Ни для кого не является тайной, что генерация страниц проходит путем выборки и использования какой-то части информации, которая хранится в базе данных. При написании сайта на PHP , чаще всего это mysql :

Для согласования расшифровки необходимо выполнить функцию mysql_query(«SET NAMES cp1251») – это означает, что преобразование из машинного кода будет осуществляться согласно таблице cp1251 .

Кодировка windows 1251 в htaccess

При создании сайта, предварительно настроив кодировки в шаблонах и базах данных, все равно может всплыть проблема некорректного отображения информации в браузере.

Для того чтобы для веб-ресурса была задана кодировка виндовс-1251 , необходимо найти ( или создать ) файл .htaccess . Это файл, который хранит в себе дополнительные настройки и описания конфигураций web-сервера.

В нем для установки кодировки следует прописать следующие строки:

  • DefaultLanguage ru;
  • AddDefaultCharset windows-1251;
  • php_value default_charset «cp1251».

Таким образом, для корректного отображения текста должны совпадать его кодировка и таблица кодов, с помощью которой браузер будет расшифровывать символы. Для текстов, написанных на славянских языках, необходима win 1251 кодировка. Важно помнить, что элементы страниц и баз данных должны быть описаны с помощью одной таблицы кодов.

Кириллица в URL

File_get_contents и кириллица в url
Нужно cкачать файл по url, который содержит кириллицу и пробелы, например.

Текущий url, дублирование переменных в url
А не подскажет ли мне кто нибудь, как избавиться от дублирующихся переменных get? К примеру есть.

ЧПУ url, красивый url
Сразу прошу прощения если я неправильно написал в заголовке темы. Вообщем есть у меня ссылка: .

Кириллица в файлах
Работал с файламив в рhp — возникли проблемы с русской кодировкой — пусть дан некий файл -.

Решение

У Вас кодировка одинакова? Я имею ввиду страницу и передаваемый параметр в ссылке?

Вообще, при передаче русского текста его сначала нужно закодировать urlencode(); и при обработке переданного сначала декодировать urldecode();

Добавлено через 2 минуты
Т.е. примерно так:

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Кириллица в DomPDF
Родненькие, ну спасите меня. Не могу понять, что надо сделать, чтобы у меня DomPDF генерил документ.

mb_strpos + кириллица
Здравствуйте, друзья! Возникла следующая проблема: Для создания простенького парсера требуется.

Читайте также:  Windows 10 автозапуск выполнить

Кириллица в MySQL
Делаю так: mysql_query(«INSERT INTO posts(message) VALUES(‘$message’)»); $message — строка с.

латиница кириллица
Добрый день мой файл принимает от пользователя строку и проверяет RegExp .

Как в php закодировать русские символы для url?

Опции темы

Допустим есть слово — «вебмастерс», как в php его закодировать для url и получить вот такую строку:

  • 0

Человек-откат

Я точно не помню, но попробуйте функцию urlencode($str). Должна помочь.

  • 0

kik11

Человек-откат, для этого есть функция urlencode()

  • 0

OKyJIucT

Есть функции : urlencode(); и urldecode();

PS за справкой php.su

  • 0

Ispanec

urlencode делает вот такую строку:
%E2%E5%E1%EC%E0%F1%F2%E5%F0%F1 , а надо как-то закодировать вот так
%D0%B2%D0%B5%D0%B1%D0%BC%D0%B0%D1%81%D1%82%D0%B5%D 1%80%D1%81

  • 0

Человек-откат

А у вас исходная строка русская в какой кодировке? utf-8 или win-1251 ?

Как правильно работать с кириллицей в url?

Решил использовать кириллицу в url . Ссылки на картинки и сами url вида site.com/картинка.jpg и site.com/news/главная-новость-дня я вывожу из бд обычным способом.

Нужно ли текст кодировать, декодировать как написано тут?

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

Со ссылками на страницы сайта, такого нет.

2 ответа 2

Большинство браузеров умеют автоматически кодировать адреса если это нужно. А современные браузеры умеют еще и декодировать URL в адресной строке для показа пользователю (при этом запросы на сервер идут всегда с кодированным URL). Но на это лучше не полагаться — ведь разные браузеры могут использовать разные кодировки. И если эта кодировка не совпадает с той, которую использует сервер при декодировании URL — все «поломается».

Поэтому лучше кодировать URL на стороне сервера, где вы точно знаете ту кодировку, в которой потом будете декодировать.

Я использую urldecode urlencode для get post запросов, для остальных случаев думаю не нужно, то есть когда передаю данные в ссылке, потому что, даже один пробел может попортить много нерв.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php url google кириллица или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.4.16.39093

Оцените статью