Проблемы с кодировкой в функции MySQL

Flash

Новичок
PHP:
CREATE FUNCTION `URL`(STR VARCHAR(200) CHARSET cp1251) RETURNS VARCHAR(200) CHARSET cp1251
    DETERMINISTIC
BEGIN
	DECLARE LEN INT DEFAULT LENGTH(STR);
	DECLARE I INT DEFAULT 1;
	DECLARE NEWSTR VARCHAR(105) DEFAULT '';
	DECLARE C CHAR;
	
	WHILE I<=LEN DO
		SET C = SUBSTR(STR, I, 1);
		CASE C
			WHEN '1' THEN SET C = 'test';
			WHEN 'в' THEN SET C = 'v';
		ELSE
			BEGIN
			END;
		END CASE;
		SET NEWSTR = CONCAT(NEWSTR, C);
		SET I = I+1;
	END WHILE;
	RETURN NEWSTR;
END$$
База в cp1251 делаю запрос, типа SELECT URL(name) FROM table;
Цифры меняются, а русские буквы нет, возвращаются знаки вопроса.
 

Flash

Новичок
> возвращаются знаки вопроса.
а ты не смотри в PHP, смотри в консоли

http://phpfaq.ru/charset
а причём здесь консоль, в консоли результат такой же будет, проблема в том что функция получает данные в неправильной кодировке и поэтому сравнение не происходит
 

iceman

говнокодер
вопросики появляются тогда, когда данные в таблице не в той кодировке, которая указана на таблицу, либо колонку
 
Сверху