Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2011, 23:46
Интересующийся
Отправить личное сообщение для Kasperskiy Посмотреть профиль Найти все сообщения от Kasperskiy
 
Регистрация: 25.04.2011
Сообщений: 13

Кракозябрики при выводе отдельных букв
Если просто выводить например echo 'Ура, Америка рулит!';
Выводит всё на русском языке.
Попробовал вывести отдельные буквы, выводят знаками вопроса. Что можно сделать?
<html>
   <head>
		<title>Пробная страница </title>
<style type="text/css">
		
</style>
</head>
<body>
<?php
$str = "Петя и Вася";
$first1 = $str{0};
$first2 = $str{2};
$len = strlen($str);
echo $first2,$first1; //Это выводит знаками вопроса
echo 'Привет'; //Это выводит нормально
?>
<body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2011, 23:54
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Скорее всего, Вы работаете в utf-8.

Этот код выводит не первую букву, а первый байт. Для восьмибитных кодировок (например, 1251) 1 буква = 1 байт и результат ожиаемый. Но для UTF-8 это не так, и, к примеру, 1 буква кириллицы = 2 байта.

Ну а вопросик — потому что браузер не знает, что ему делать с «огрызком» буквы.

wikipedia:UTF-8
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2011, 23:57
Интересующийся
Отправить личное сообщение для Kasperskiy Посмотреть профиль Найти все сообщения от Kasperskiy
 
Регистрация: 25.04.2011
Сообщений: 13

Да, ютф-8 стоит по умолчанию, выход только использовать кодировку именно Windows1251?
Ответить с цитированием
  #4 (permalink)  
Старый 03.05.2011, 00:03
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Нет-нет-нет! Ни в коем случае, 1251 — прошлый век.

Вам поможет mb_substr():
$str = "Вася и Петя";
mb_internal_encoding("UTF-8");
echo mb_substr($str , 0, 1); // В
echo mb_substr($str , 1, 1); // а
Ответить с цитированием
  #5 (permalink)  
Старый 03.05.2011, 00:24
Интересующийся
Отправить личное сообщение для Kasperskiy Посмотреть профиль Найти все сообщения от Kasperskiy
 
Регистрация: 25.04.2011
Сообщений: 13

<html>
   <head>
		<title>Пробная страница </title>
<style type="text/css">
		
</style>
</head>
<body>
<?php
$str = 'Петя и Вася';
//$first = $str{0}.$str{1};
//echo $first;
mb_internal_encoding("UTF-8");
$len = strlen($str);
echo mb_substr($str,0,4),' ',mb_substr($str,7,11);


?>
<body>
</html>


Так сработало.
Вот блин ступил я,сори.
Почему без этой строки не хочет пахать?
mb_internal_encoding("UTF-8");

Последний раз редактировалось Kasperskiy, 03.05.2011 в 00:56.
Ответить с цитированием
  #6 (permalink)  
Старый 03.05.2011, 01:10
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Магия.

Функции mb могут работаь с кучей различных кодировок. Надо же php сказать, какую именно кодировку мы от него просим, верно?
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2011, 16:41
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

Залей в корневую папку на FTP фаил с именем .htaccess и строкой внутри
adddefaultcharset utf-8

И будет все содержимое пониматься как UTF-8
Грубо говоря Апач будет показывать твой сайт в этой кодировке. Если пишешь в dreamweaver то там по умолчанию она, или как вариант отправляй сразу header с нужной кодировкой.
__________________
XYZ
Ответить с цитированием
  #8 (permalink)  
Старый 12.05.2011, 18:50
Аватар для walik
Профессор
Отправить личное сообщение для walik Посмотреть профиль Найти все сообщения от walik
 
Регистрация: 09.11.2009
Сообщений: 1,101

0931454574,
И понту ты это сейчас написал ? тем более проблема то в другом. Смысл ты вообще поднимаешь решенные темы ?
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Ответить с цитированием
  #9 (permalink)  
Старый 13.05.2011, 10:03
Человек
Отправить личное сообщение для 0931454574 Посмотреть профиль Найти все сообщения от 0931454574
 
Регистрация: 10.03.2011
Сообщений: 305

walik,
А твой ответ лучше? Следи за собой, будь осторожен(Цой)
__________________
XYZ
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
конфликт скобок при выводе crautcehr Общие вопросы Javascript 5 11.04.2011 00:06
Кракозябры при выводе Golovastik (X)HTML/CSS 4 04.12.2010 21:59
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28
Как уменьшить размер фотографии при выводе??? PAMAC Серверные языки и технологии 4 24.08.2010 19:37
Как разделять страницы при выводе отчета ilshat Events/DOM/Window 7 10.12.2009 10:24