Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: проблема с кодировкой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
xhugo
Отправлено: 30 Ноября, 2011 - 20:45:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




Проблема при выводи через jquery.
схема такая:
index.php
all.php

на index.php(windows-1251) вывод записей из БД, посылается запрос jquery на all.php(utf8) и получаем записи в формате json.

и у меня полученные записи выводятся в index.php в формате utf8.

(Отредактировано автором: 30 Ноября, 2011 - 20:46:05)

 
 Top
EuGen Администратор
Отправлено: 30 Ноября, 2011 - 20:47:36
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Так используйте utf везде. На крайний случай http://php.su/functions/?iconv подойдет.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
xhugo
Отправлено: 01 Декабря, 2011 - 16:06:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




и так тоже делал. index.php,all.php прописано в header utf8 и сам документ тоже utf8.
и вот что заметил, если посмотреть просто как выводит в json на all.php то там не вижу русскии буквы, т.е. строки с русскими буквами нет вообще. а когда смотришь index.php все есть только в utf8.

Еще при добавление данных в бд в index.php не через js т.п. а напрямую. то данные в БД в таком формате ????¦????¦? ?°
 
 Top
EuGen Администратор
Отправлено: 01 Декабря, 2011 - 16:10:35
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Кодировка должна быть везде utf - в БД, в скриптах (то есть сами тексты скриптов), в посылаемых заголовках или тегах meta


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Данил_123
Отправлено: 01 Декабря, 2011 - 16:33:55
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




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

(Отредактировано автором: 01 Декабря, 2011 - 16:37:16)



-----
http://mysitecost.ru
 
 Top
xhugo
Отправлено: 01 Декабря, 2011 - 21:43:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




собственно у меня всё в UTF8. Но те записи которые я получаю через jquery в json. они у меня выводятся в формате windows-1252.в чем проблема?

index.php utf8
all.php utf8
бд в utf8
 
 Top
Panoptik
Отправлено: 01 Декабря, 2011 - 22:06:09
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




в sql юзайте set names utf-8
.htaccess - AddDefaultCharset utf-8


-----
Just do it
 
 Top
xhugo
Отправлено: 02 Декабря, 2011 - 10:34:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




когда в all.php написал set names UTF8, то получаю уже такое
ХАХАХХААХАВСЦУЫВ
 
 Top
Самогонщик
Отправлено: 02 Декабря, 2011 - 11:07:37
Post Id



Посетитель


Покинул форум
Сообщений всего: 495
Дата рег-ции: Окт. 2011  


Помог: 8 раз(а)




xhugo пишет:
Х�Х�ХХ��Х�ВСЦУЫВ
На вскидку - это кирилистические буквы закодированные в утф-8 выведенные в однобайтовой кодировке
 
 Top
xhugo
Отправлено: 03 Декабря, 2011 - 11:48:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 357
Дата рег-ции: Дек. 2010  


Помог: 1 раз(а)




код такой:
index.php(utf8):
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <head>
  3.         <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.min.js"></script>
  4.         <meta http-equiv="Content-Type" content="text/html; charset=utf8">
  5. </head>
  6. <body>
  7. <script type="text/javascript">
  8.  
  9.   jQuery(document).ready(function() {  
  10.          query();  
  11.   });
  12.   var n;
  13.    
  14.   function query(){    
  15.   if(n==undefined) {
  16.      n=1;
  17.   } else {
  18.      n=n+5;
  19.   }
  20.   $.post('t2.php',{offset:n},
  21.     function(data){  
  22.       eval('var obj='+data);        
  23.       if(obj.ok=='1'){
  24.         for(var i = 0; i <= obj.more.length; i++){                            
  25.            $('#result').append('text:' + obj.more[i].text + '<hr>');        
  26.         }  
  27.       }
  28.       else
  29.       if(obj.ok=='3') {
  30.       $('#button').addClass('button_disabled').attr('disabled', true);
  31.       }                
  32.     });    
  33.   }      
  34. </script>
  35. <button onclick="query();" id="button">показать еще</button>
  36. <div id="result"></div>
  37. </body>  
  38.  


t2.php(utf8):
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. ini_set("display_errors","On");
  4. error_reporting("E_ALL");
  5. include("./ask/config.php");
  6.   $db= mysql_connect($sqlhost, $sqluser, $sqlpass);
  7.    mysql_query("SET NAMES `cp1251`") or die (mysql_error());
  8.    mysql_select_db($sqldb);
  9.  
  10.         $sql    = mysql_query("SELECT * FROM `black` ORDER BY id DESC LIMIT 0, 5");  
  11.         if(mysql_num_rows($sql)>0) {
  12.         while($post = mysql_fetch_assoc($sql)){  
  13.             foreach($post AS $n=>$m){  
  14.                 $post[$n] = utf8_encode($m);
  15.             }  
  16.             $json['more'][] = $post; # чтобы было легче до
  17.        }  
  18.          if(count($json['more']))  {
  19.              $json['ok'] = '1';  
  20.          } else {  
  21.              $json['ok'] = '0';
  22.          }      
  23.         } else {
  24.            $json['ok']='3';
  25.         }    
  26.         mysql_close($db);  
  27.    
  28. echo json_encode($json);  
  29.  
  30. ?>
  31.  


и получаю:
text:Ïîøëè ñ ïàðíåì ñìîòðåòü Ãàððè Ïîòòåðà. Îïîçäàëè íà ñåàíñ áóêâàëüíî íà íåñêîëüêî ìèíóò. çàõîäèì â çàë, à òóò ãoëoñ Âîëàí-Äå-Ìîðòà ñ ýêðàíà: "ÿ óæå íà÷àë âîëíîâàòüñÿ ÷òî âû çàáëóäèëèñü. Ìåñòî ïîêà ñâîáîäíî."
text:Âñå ëþäè ïîïàäàþò â íàøó æèçíü íå ïðîñòî òàê. Îäíè ïðèíîñÿò ñ÷àñòüå, à äðóãèå îïûò è çàêàë¸ííûé õàðàêòåð.
text:Òîëüêî â ðóññêîì ÿçûêå ñëîâà "çàáèòü" è "ïîëîæèòü" ÿâëÿþòñÿ ñèíîíèìàìè.
text:- Ëþñÿ, òññ... Àêêóðàòíî ðàçäåâàéñÿ è ïðîõîäè. Òîëüêî î÷åíü òèõî, âñå ñïÿò. - À òî÷íî âñå ñïÿò? - Äà òî÷íî! ×òî ÿ, ñâîþ êàçàðìó íå çíàþ, ÷òî ëè? . .
text:Ìû áûëè â öåðêâè Íèêîëàÿ ×óäîòâîðöà, îäíà íàøà ñîîòå÷åñòâåííèöà áûëà â áèêèíè è ïàðåî. Âûãëÿäåëî íå î÷åíü, ïðè÷åì ãèä ñêàçàëà æåëàòåëüíî ïðèêðûòü ãîëîâó, âñå-òàêè öåðêîâü...

у всех так?

(Отредактировано автором: 03 Декабря, 2011 - 19:16:23)

 
 Top
Sanche
Отправлено: 12 Декабря, 2011 - 15:47:47
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Дек. 2011  


Помог: 0 раз(а)




было дело, работал json в jquery + php и помню точно, что какая-то цепочка валилась, потому что json херово работает с кирилицей и дело в некорректности преобразований encode, decode. В http://www[dot]google[dot]by/search?gcx=[dot][dot][dot]0%B8%D1%86%D0%B0 решение было .
(Добавление)
Sanche пишет:
было дело, работал json в jquery + php и помню точно, что какая-то цепочка валилась, потому что json херово работает с кирилицей и дело в некорректности преобразований encode, decode. В http://www[dot]google[dot]by/search?gcx=[dot][dot][dot]0%B8%D1%86%D0%B0 решение было .

мне вроде это помогло

PHP:
скопировать код в буфер обмена
  1.  
  2.  if (!function_exists('json_encode_')) {
  3.            function json_encode_($a=false) {
  4.              if (is_null($a)) return 'null';
  5.              if ($a === false) return 'false';
  6.              if ($a === true) return 'true';
  7.              if (is_scalar($a)) {
  8.              if (is_float($a)) {
  9.                  // Always use "." for floats.
  10.                  return floatval(str_replace(",", ".", strval($a)));
  11.                }
  12.  
  13.                if (is_string($a)) {
  14.                  static $jsonReplaces = array(array("\\", "/", "", "\t", "\r", "\b", "\f", '"'), array("\\\\", "\\/", "\\", "\\t", "\\r", "\\b", "\\f", '\"'));
  15.                  return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
  16.                }
  17.                else
  18.                return $a;
  19.              }
  20.              $isList = true;
  21.              for ($i = 0, reset($a); $i < count($a); $i++, next($a)) {
  22.                if (key($a) !== $i) {
  23.                  $isList = false;
  24.                  break;
  25.                }
  26.              }
  27.              $result = array();
  28.              if ($isList) {
  29.                foreach ($a as $v) $result[] = json_encode_($v);
  30.                return '[' . join(',', $result) . ']';
  31.              }
  32.              else {
  33.                foreach ($a as $k => $v) $result[] = json_encode_($k).':'.json_encode_($v);
  34.                return '{' . join(',', $result) . '}';
  35.              }
  36.            }
  37.         }
  38.         echo json_encode_( $output );
  39.  

(Отредактировано автором: 12 Декабря, 2011 - 15:52:50)

 
 Top
Мелкий Супермодератор
Отправлено: 12 Декабря, 2011 - 15:53:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




xhugo пишет:
index.php(utf8):

xhugo пишет:
t2.php(utf8):

xhugo пишет:
SET NAMES `cp1251`

И в итоге хотите получить что-то вразумительное? Однако


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB