Проблем с Input encoding (UTF-8)

XTYLING

Registered
Проблема е следния,

сайта ми е на (UTF-8) енкодинг а след пост на български вместо да ми излезнат букви на кирилица ми излиза това:
Код:
%u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B
Ако енкодинга ми е Windows-1251 няма проблем а с това има.. някакви идеи как да стане? :cry: :cry:
 
PHP:
<?php
$string = '%u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B';
echo urldecode($string);
?>
 
Ev0luti0N каза:
PHP:
<?php
$string = '%u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B';
echo urldecode($string);
?>

и ми излиза:

Код:
%u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B
 
ами излиза ми като ПОСТ отговор:

Код:
op = user
action = message
send = yes
write = write
from = gatt
to = rede
subject = %u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B
topic = %u041F%u043E%u0442%u0440%u0435%u0431%u0438%u0442%u0435%u043B%u0441%u043A%u0438 %u043F%u0430%u043D%u0435%u043B

трябва да ми излезнат български букви а страницата защото е на УТФ-8 енкодинг ги преубразува на някаф никаф енкодинг...
 
Ясно, но дай кода на файла, за да го разгледам точно да видя дали екодинга е проблема или може да се мине през iconv :?:
 
http://xmu.bg/top
Напиши тук буквата: Д или някоя друга българска буква и виш как ги преубразува...
 
Не можеш да ме разбереш ли?
От този код не може да е грешката. Трябва ми файла през който имана текста след натискането на бутона. :shock:
 
Ev0luti0N каза:
Не можеш да ме разбереш ли?
От този код не може да е грешката. Трябва ми файла през който имана текста след натискането на бутона. :shock:
текста минава през:

Код:
function ajax(link) 
{

$("#frame").fadeTo(0,0.0);
$("#frame").empty().append('<div align="center"><img src="/~images/loading.gif"><br />Please wait to loading this page...<br /></div>').fadeTo(0,1.0);



	$.ajax(
	{
		type: "POST",
		url: 'core.php',
		data: "op="+link,
		cache: false,
		success: function(msgc)
		
		{
			$("#frame").fadeTo(0,0.0);
			$("#frame").empty().append(msgc).fadeTo(300,1.0);
			
		}
	});
}
 
Кирилицата така се праща доколкото си спомням. Дай кода в core.php. Защото там излиза този текст и там трябва да се оправи. :)
 
Ev0luti0N каза:
Кирилицата така се праща доколкото си спомням. Дай кода в core.php. Защото там излиза този текст и там трябва да се оправи. :)

Код:
<?php
include('config.php');
include('common.php');

if(isset($_POST['op']))
{
	$content = $_POST['op'];
	if(defined($content)) 
	{
		if(is_file(''.constant($content).'')) 
		{
			echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
			if($content=='message') { include(''.dirname(__FILE__).'\..\\'.constant($content).''); }
		}
		else
		{

			echo message("The requested page can not be found.","error");
		}
	} 
	else 
	{ 

		echo message("The requested page can not be found.","error");
	}
}


foreach($_POST as $key => $value)
{
	echo "$key = $value<br />";	
} 

?>
 
PHP:
<?php
header("Content-Type:text/html; charset=utf-8");
include('config.php');
include('common.php');

if(isset($_POST['op']))
{
   $content = $_POST['op'];
   if(defined($content)) 
   {
      if(is_file(''.constant($content).'')) 
      {
         echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
         if($content=='message') { include(''.dirname(__FILE__).'\..\\'.constant($content).''); }
      }
      else
      {

         echo message("The requested page can not be found.","error");
      }
   } 
   else 
   { 

      echo message("The requested page can not be found.","error");
   }
}


foreach($_POST as $key => $value)
{
   echo "$key = " . iconv('utf-8', 'windows-1251', $value) . "<br />";   
} 

?>
:idea:
 
Няма разлика :(
ако искаш ми дай пълномощно скайп ми е xtyling_support , за да може да тестваме :)
 
Ако си с NOTEPAD++ погледни в какъв формат ти сейфа документа :)
ANCI или нещо друго.
 
emcuemnecu каза:
Ако си с NOTEPAD++ погледни в какъв формат ти сейфа документа :)
ANCI или нещо друго.
Пише се ANSI.. :shock:

Както ти казаха другите потребители направи си файла UTF-8 without BOM сложи header който бях ти дал в предишният код и го направи този header на utf-8. След което би трябвало да нямаш проблеми. Ако имаш се пак изпозлвай фукцията iconv - http://www.php.net/manual/en/function.iconv.php
 
Оправих се като махнах от JavaScript: escape функцията
http://www.the-art-of-web.com/javascript/escape/
http://www.javascripter.net/faq/escape.htm

и междодругото мерси на Ev0luti0N че отдели време по темата. +1 Ево
 

Back
Горе