Проблем с кирилизирането при запис в база данни.

proba

Registered
Здравейте.
Опитвам се да направя промяна на информация от база данни чрез този скрипт :
http://www.9lessons.info/2010/04/facebook-like-profile-edit-with-jquery.html

(подобно като във fb).

db.sql

CREATE TABLE `users`
(
`id` INT NOT NULL auto_increment,
`username` VARCHAR(45) character set latin1 NOT NULL,
`password` VARCHAR(45) character set latin1 NOT NULL ,
`profile` TEXT character set latin1,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM DEFAULT CHARSET=cp1251 COLLATE=cp1251_bulgarian_ci AUTO_INCREMENT=0 ;

При регистрация когато запиша информация и я изведа после си излиза на кирилица.
При промяна на информацията чрез обикновенна форма и mysql заявка , после пак изкарва кирилица.
Но когато направя промяна чрез този скрипт , не ми записва кирилицата а я променя.
Да речем надписа тест.
При нормална промяна:


А при запис чрез този скрипт записа в базата данни е :

те�т

И извежда резултат:

тест

вместо

.

С set names и set character , не стана. (горовя през mysql_query);

Страницата има мета таг за charset- windows-1251..

Някакви идеи как да оправя проблема ?

ЕДИТ: ако направя charset-a да е utf-8 проблема се оправя , но не ми е изгодно.
Как да го оправя при charset на страницата -> windows-1251.. ?
 
Оправих проблема чрез тази функция:

<?php
function convert($s) {
for ($c = 0; $c < strlen($s); $c++) {
$i = ord($s[$c]);
if ($i <= 127)
$out .= $s[$c];
if ($byte2) {
$new_c2 = ($c1 & 3) * 64 + ($i & 63);
$new_c1 = ($c1 >> 2) & 5;
$new_i = $new_c1 * 256 + $new_c2;
if ($new_i == 1025) {
$out_i = 168;
} else {
if ($new_i == 1105) {
$out_i = 184;
} else {
$out_i = $new_i -848;
}
}
$out .= chr($out_i);
$byte2 = false;
}
if (($i >> 5) == 6) {
$c1 = $i;
$byte2 = true;
}
}
return $out;
}
?>

Благодаря все пак.. ;)
 
Ами това го използвам винаги , за да ми излиза кирилицата и си работи в всичките ми сайтове.
Но този скрипт конвертира $_POST['текста'] на utf8 а не на нормален текст , и го записва като utf8 и това прецакваше работата.
 
Ей не мога да ви разбера какви хора сте... :)
Искаш да имаш кирилица а използваш latin_нещо си.

latin = латиница.
utf-8 = кирилица, латиница, и квото се сетиш още.
cp1251 = кирилица.
 
При latin_нещо си и кодировка на файла cp1251(windows-1251) няма проблеми.Въпроса е че когато единя скрипт работи с другия чрез ajax тогава обърква работата.
И оправих проблема като промених на utf8 колацията , и кодировката на файла.
 

Back
Горе