Charset Changing: Difference between revisions
Upazixorys (talk | contribs) No edit summary |
m (Reverted edits by Upazixorys (Talk); changed back to last version by Olajideolaolorun) |
||
Line 1: | Line 1: | ||
This wiki article will help you change your <u>Char</u>acter <u>Set</u> to something else other than the default Uniform Server setting (ISO-8859-1 / latin1). | |||
This wiki article will help you change your | |||
In this article, our goal is to set the charset to '''cp1250''' | In this article, our goal is to set the charset to '''cp1250''' | ||
==Apache== | ==Apache== | ||
Find this statement in the Apache configuration file (W:/usr/local/apache2/conf/httpd.conf) | Find this statement in the Apache configuration file (W:/usr/local/apache2/conf/httpd.conf) <pre>AddDefaultCharset iso-8859-1</pre> and change it to: <pre>AddDefaultCharset WINDOWS-1250 | ||
AddCharset WINDOWS-1250 .cp-1250 .win-1250 | AddCharset WINDOWS-1250 .cp-1250 .win-1250</pre> ''Note: See ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets for the official list of charset names and their respective RFCs.'' | ||
==MySQL== | ==MySQL== | ||
# In the file (W:/usr/local/mysql/bin/my_small.cnf) find line: | # In the file (W:/usr/local/mysql/bin/my_small.cnf) find line: <pre>Uncomment the following if you are NOT using BDB tables</pre> | ||
# Insert the two following lines, '''before''' the line above: | # Insert the two following lines, '''before''' the line above: <pre><nowiki>character-set-server = cp1250 | ||
collation-server = cp1250_general_ci | collation-server = cp1250_general_ci</nowiki></pre> | ||
# Restart Apache and MySQL and verify that system variables looks like this: | # Restart Apache and MySQL and verify that system variables looks like this: <pre><nowiki>character set client latin1 cp1250 | ||
character set connection cp1250 cp1250 | character set connection cp1250 cp1250 | ||
character set database cp1250 cp1250 | character set database cp1250 cp1250 | ||
Line 20: | Line 19: | ||
collation connection cp1250_czech_cs cp1250_general_ci | collation connection cp1250_czech_cs cp1250_general_ci | ||
collation database cp1250_general_ci cp1250_general_ci | collation database cp1250_general_ci cp1250_general_ci | ||
collation server cp1250_general_ci cp1250_general_ci | collation server cp1250_general_ci cp1250_general_ci</nowiki></pre> | ||
Line 26: | Line 25: | ||
From now all databases will be correctly set to cp1250 and your dynamic data will be presented in the new character set. | From now all databases will be correctly set to cp1250 and your dynamic data will be presented in the new character set. | ||
''Note 1: There might be old application databases that are not automatically recorded into the new charset. You should do it | ''Note 1: There might be old application databases that are not automatically recorded into the new charset. You should do it "manually" prefarably via phpMyAdmin.'' | ||
''Note 2: This does not generally mean that your application will send correctly formatted data into the database! If they are not sent correctly, they can later be presented correctly in your browser so you have to adjust the PHP application now!'' | ''Note 2: This does not generally mean that your application will send correctly formatted data into the database! If they are not sent correctly, they can later be presented correctly in your browser so you have to adjust the PHP application now!'' | ||
==PHP== | ==PHP== | ||
If you have a PHP definition or configuration file, the file where global interraction with MySQL is set, (look for a filename like: definition.php, cofig.php, etc.) in the | If you have a PHP definition or configuration file, the file where global interraction with MySQL is set, (look for a filename like: definition.php, cofig.php, etc.) in the "appropriate" place (you have to find the place yourself,) insert two lines of code: <pre>mysql_query("SET character_set_connection=cp1250"); | ||
mysql_query( | mysql_query("SET character_set_client=cp1250");</pre> | ||
Latest revision as of 08:29, 24 November 2010
This wiki article will help you change your Character Set to something else other than the default Uniform Server setting (ISO-8859-1 / latin1).
In this article, our goal is to set the charset to cp1250
Apache
Find this statement in the Apache configuration file (W:/usr/local/apache2/conf/httpd.conf)
AddDefaultCharset iso-8859-1
and change it to:
AddDefaultCharset WINDOWS-1250 AddCharset WINDOWS-1250 .cp-1250 .win-1250
Note: See ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets for the official list of charset names and their respective RFCs.
MySQL
- In the file (W:/usr/local/mysql/bin/my_small.cnf) find line:
Uncomment the following if you are NOT using BDB tables
- Insert the two following lines, before the line above:
character-set-server = cp1250
collation-server = cp1250_general_ci
- Restart Apache and MySQL and verify that system variables looks like this:
character set client latin1 cp1250
character set connection cp1250 cp1250 character set database cp1250 cp1250 character set results latin1 cp1250 character set server cp1250 cp1250 character set system utf8 utf8 collation connection cp1250_czech_cs cp1250_general_ci collation database cp1250_general_ci cp1250_general_ci
collation server cp1250_general_ci cp1250_general_ci
The lines where latin1 set remains is of no interest for us just now.
From now all databases will be correctly set to cp1250 and your dynamic data will be presented in the new character set.
Note 1: There might be old application databases that are not automatically recorded into the new charset. You should do it "manually" prefarably via phpMyAdmin.
Note 2: This does not generally mean that your application will send correctly formatted data into the database! If they are not sent correctly, they can later be presented correctly in your browser so you have to adjust the PHP application now!
PHP
If you have a PHP definition or configuration file, the file where global interraction with MySQL is set, (look for a filename like: definition.php, cofig.php, etc.) in the "appropriate" place (you have to find the place yourself,) insert two lines of code:
mysql_query("SET character_set_connection=cp1250"); mysql_query("SET character_set_client=cp1250");