Jump to content

still charset troubles cp1251


ervan

Recommended Posts

First of all, hello y'all. I'm newbie in web developnent, and i got pure english so sorry for that.

 

Becouse i'm russian (well almost russian, exUSSR anyway) so, i need to use cp1251 charset by default in my base. I read ton of articles (in russian and english, the most useful is http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html), but still have a questions.

 

I downloaded and installed MySql 5.0 + php 5 + apache 2.2 on my local windows machine. When I install mysql (russian version) it promter for charset, I, of course, selected cp1251. Then mysql.exe don't started becouse of path problem, then i typed in my.ini:

 

character-sets-dir="<mysql_proper_path>/MySQL/share/charsets"

 

This problem, solves quickly, by default there(my.ini) is some lines according to charset:

 

default-character-set=cp1251

 

Some manuals advance to set

 

init-connect="SET NAMES cp1251"

but when i typed thet, mysql.exe says:

 

mysql: unknown variable 'init-connect=SET NAMES cp1251'

 

First question is why ? So i skipped that advice;

When i firts run mysql.exe and typed:

SHOW VARIABLES LIKE 'character_set%';

i got:

+--------------------------+---------------------------------------+
| Variable_name            | Value                                 |
+--------------------------+---------------------------------------+
| character_set_client     | cp1251                                |
| character_set_connection | cp1251                                |
| character_set_database   | cp1251                                |
| character_set_filesystem | binary                                |
| character_set_results    | cp1251                                |
| character_set_server     | cp1251                                |
| character_set_system     | utf8                                  |
| character_sets_dir       | D:\mustdie\prog\MySQL\share\charsets\ |
+--------------------------+---------------------------------------+

seems all ok. I createded database, tables and added some data in my native langauge(all using mysql.exe). But when i tryed to access that data from php script, i got unreadable text :(

First i write that script to see character_set* variables:

...
	$res = mysql_query("SHOW VARIABLES LIKE 'character_set%';");

	$rows = mysql_num_rows($res);

	echo "rows = $rows<br>";
	while ($rows > 0)
	{
		$fields = mysql_fetch_array($res);

		$num = mysql_num_fields($res);

		$i = 0;
		while($i < $num)
		{
			echo "$fields[$i] ";
			$i++;
		}
		echo "<br>";
		$rows--;
	};
...

and i got ^_^:

rows = 8
character_set_client latin1 
character_set_connection latin1 
character_set_database cp1251 
character_set_filesystem binary 
character_set_results latin1 
character_set_server cp1251 
character_set_system utf8 
character_sets_dir D:\mustdie\prog\MySQL\share\charsets\

Second question is why in php script i got different variables that from mysql.exe (i runned mysql.exe with parameters: C:\<path>>mysql.exe -u root -p)?

OK, I typed before  that script

mysql_query("set names cp1251;")

and results from mysql.exe and php script were the same.

 

seems all ok, but when I tryed add some data from php script to database like that:

	$name = "\"руссиш текст\"";
$data = "\"давай выпьем\"";
$query = "insert into posts (name, data, date, time) values ($name, $data, CURRENT_DATE(), CURRENT_TIME());";

that text data was unreadable from mysql.exe intepreter :( and text data that i added manualy from interpreter were unreadable from php scripts. So this is the main question. What should I do to see readable data from interpreter and php script?

 

note that there is no problem with source file encoding, files has cyrillic encoding.

if u want, u cant contact to me fast via icq: 477-844-980

 

thanks y'all, anyway %)

cheers, rain

 

 

Link to comment
https://forums.phpfreaks.com/topic/60209-still-charset-troubles-cp1251/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.