Кодировка строк

  • Автор темы LostAgain
  • Дата начала

LostAgain

Guest
Кодировка строк

Hello!

В какой кодировке php представляет строки?
если я делаю так
PHP:
$str="dfkghfkdgj";
print($str);
в какой кодировке браузеру будет возвращен документ и можно ли указывать явно какой charset использовать при операциях над строками в скрипте?
 

tony2001

TeaM PHPClub
ни в какой.
РНР выдает данные.

>в какой кодировке браузеру будет возвращен документ
в дефолтовой у апача, если таковая указана.

>можно ли указывать явно какой charset
>использовать при операциях над строками в скрипте?
можно указывать локаль - [m]setlocale[/m]
 

LostAgain

Guest
Автор оригинала: tony2001
ни в какой.
РНР выдает данные.
ок . поток байт


>в какой кодировке браузеру будет возвращен документ
в дефолтовой у апача, если таковая указана.
у меня нет прав на апач, а хочется вернуть или в KOI8 Или win1251 etc.

>можно ли указывать явно какой charset
>использовать при операциях над строками в скрипте?
можно указывать локаль - [m]setlocale[/m]
есть, но влияет на дата/время и куренси etc. это не то
 

RomikChef

Guest
если ты хочешь сам перекодировать, то
convert_cyr_string
а если указать, то сейчас все указывают кодировку метой. в хтмл.
 

LostAgain

Guest
Автор оригинала: RomikChef
если ты хочешь сам перекодировать, то
convert_cyr_string
для того чтобы знать из какого charset кодировать нужно знать в какой кодировке у меня строка в php?

ltkf. следующее
PHP:
<?php



function show_it_all($str)
{
$chsets = array("k","w","i","a","d","m");
$chsetsdesc = array("k" => "koi8-r",
                    "w" => "windows-1251",
                    "i" => "iso8859-5",
                    "a" => "x-cp866",
                    "d" => "x-cp866",
                    "m" => "x-mac-cyrillic");
  $i=0;
  while($i<6)
  {
    $j=0;
    $chsetfrom = $chsets[$i];
    while($j<6)
    {
      $chsetto = $chsets[$j];

        print ("string converted from ".$chsetsdesc[$chsetfrom]." to ".$chsetsdesc[$chsetto]."</br>");
        print (convert_cyr_string($str,$chsetfrom,$chsetto));
        print ("</br>");

      $j++;
    }
    $i++;
  }
}


show_it_all("строка");

?>
и не понимаю вообще ничего, кодирует из чего угодно во что угодно корректно;но не может же быть чтобы строка была одновременно и koi8-r и x-mac-cyrillic и ...., значит строки в php это уникод? или я ошибаюсь.

а если указать, то сейчас все указывают кодировку метой. в хтмл.
так это вроде для браузер's автодетекта, а мне важно не как это браузер отобразит а в какой кодировке я возвращаю результат.
 

RomikChef

Guest
строки в php это уникод
строки в РНР, это то, что ТЫ В НИХ ПОЛОЖИЛ.

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

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

В какой кодировке сроки в РНР. Ну этот вопрос вообще ни перед кем никогда не вставал.

что значит - в какой кодировке? ДА НИ В КАКОЙ. Что ты в строку записал - то там и лежит. сидишь ты на винде и пишешь в нотепаде $s="блабла"; - эта строка у тебя в 1251.
сидишь под юниксом, и написал то же самое - строка у тебя в кои!
Нету в пыхе такого понятия - кодировка строки. Ничего он не кодирует и не перекодирует. вообще строки в аыхе - это бинарные данные. Считал ты в переменную картинку - в КАКОЙ КОДИРОВКЕ он у тебя? Уникод?

Вроде бы, ты не идиот, чтобы этого не понимать.
Остается одно. Ты опять имел в виду совсем не то, что написал.
Тебя интересует не то, в какой кодировке представлены строки в РНР, а как определить, в какой кодировке строка пришла ИЗ БРАУЗЕРА.

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

RomikChef

Guest
Если же, паче чаяния, ты не знаешь сам, в какой кодировке у тебя русский язык в скриптах, то это проблема решается не на форуме.
 

RomikChef

Guest
так это вроде для браузер's автодетекта,
ЭТО не для браузерс автодетекта.
это ответ на твое
у меня нет прав на апач, а хочется вернуть или в KOI8 Или win1251 etc.
ЭТО указывает, в какой кодировке ты возвращаешь.
а уж чтобы вернуть в желаемой кодировке, надо
1. ЗНАТЬ в какой кодировек у тебя данные изначально. пояснение - в какой ТЫ САМ их туда написал.
2. использовать конверт цыр стринг для конвертации и выдачи.

Если уж и теперь тебе будет что-то неясно, то я хотел бы встретиться и на тебя поглядеть. Просто удовлетворить любопытство - как ты выглядишь.
 

LostAgain

Guest
Автор оригинала: RomikChef

В какой кодировке сроки в РНР. Ну этот вопрос вообще ни перед кем никогда не вставал.
до вчера :)
что значит - в какой кодировке? ДА НИ В КАКОЙ. Что ты в строку записал - то там и лежит. сидишь ты на винде и пишешь в нотепаде $s="блабла"; - эта строка у тебя в 1251.
сидишь под юниксом, и написал то же самое - строка у тебя в кои!
Результат работы скрипта это по сути строка и часть ее я написал в сурсе, часть прочитал из файла на никсах, часть из файла на win и все это в куче вернул. Тому кто этот скрипт вызывает важно знать в какой кодировке это будет. Не обязательно это должен быть браузер.

У меня к тебе будет большая просьба.
Не надо на форум перекладывать задачу связного формулирования своих мыслей.
постарайся сначала сам понять ,чего ты хочешь, а потом задавать вопросы.
ok
 

RomikChef

Guest
часть ее я написал в сурсе, часть прочитал из файла на никсах, часть из файла на win и все это в куче вернул
очень хорошо. а теперь скажи мне, родной, какое все эти замечательные места имеют отношение к тому,
какой кодировке php представляет строки?
В КАКОЙ ПРОЧИТАЛ - В ТАКОЙ ИПРЕДСТАВЛЯЕТ!
 

RomikChef

Guest
До тебя все еще не дошло, что никаких кодировок для РНР не существует?
повторяю, для особо талантливых.
что РНР прочитал из файла - то и выдал.
подсунул ты ему два файла в разной - он в разной и выдал.
в РНР только одна кодировка - КАК ЕСТЬ!

понятно? или еще нет?
 

RomikChef

Guest
И все-таки, перед этим героем стоит задача узнать, в какой кодировке данные ПРИШЛИ в РНР.

или, в общем случае- определить кодировку русского текста.

Но боже мой. Это не человек. Это пиявка.
 

Yuriy_S

-=PHP-Club=-
Ромик, не мучайся :)
Пусть он сам посидит и подумает немного, что ему нужно и четко, конкретно сформулирует свой вопрос.

Результат работы скрипта это по сути строка и часть ее я написал в сурсе, часть прочитал из файла на никсах, часть из файла на win и все это в куче вернул. Тому кто этот скрипт вызывает важно знать в какой кодировке это будет. Не обязательно это должен быть браузер.
Так считывай эти данные и потом в "кучу" записывай (преобразуй в нужную кодировку) в определенной кодировке.
 

tony2001

TeaM PHPClub
Ромик, спокойно.

LostAgain:
приходят в той, которую указываешь в meta.
все.
 

RomikChef

Guest
Юра, по сравнению с этим мозгососом ты просто ангел во плоти.

Дело в том, что он ничего не знает. вообще.
Ни каким методом данные ему в скрипт передаются. Ни в каких переменных. Ни в каких кодировках. Вообще ничего.

из этого надо исходить. Перекодировать? А из какой в какую?
А он не знает!
 

LostAgain

Guest
Автор оригинала: RomikChef
До тебя все еще не дошло, что никаких кодировок для РНР не существует?
повторяю, для особо талантливых.
что РНР прочитал из файла - то и выдал.
подсунул ты ему два файла в разной - он в разной и выдал.
в РНР только одна кодировка - КАК ЕСТЬ!

понятно? или еще нет?
Понятно . Каким образом тогда узнать что передавать в качестве 2-го параметра convert_cyr_string
 

tony2001

TeaM PHPClub
>Понятно . Каким образом тогда узнать что передавать в качестве 2-го параметра convert_cyr_string
зачем?
ничего никуда не надо конвертить.

у тебя контент в КОИ, в метатэги - КОИ.
и данные у тебя будут в КОИ.
если кто-то умный переключит руками кодировку на UTF-8, то это уже его проблемы, а не твои.
автодетект кодировок - вещь нетривиальная, поверь.

хотя, уж если тебя это так волнует - можешь здесь смотреть _очень ненадежный пример_:
http://tony2001.phpclub.net/detect_charset/
 

LostAgain

Guest
Автор оригинала: tony2001
Ромик, спокойно.

LostAgain:
приходят в той, которую указываешь в meta.
все.
возвращается не html файл, принимает его не браузер
 

Yuriy_S

-=PHP-Club=-
а что его принимает тогда?
LostAgain - а может в города поиграем?
 
Сверху