Re: UTF-8 Zen-Cart Tutorial for v1.3.x
Sorry, I'm not an expert on configuring for Hebrew language.
Maybe this will help? http://www.zen-cart.com/forum/showthread.php?p=584302
If it's a server issue with your PHP configuration, then it's something your hosting company will have to fix. It's NOT in php.ini.
Re: date and time formats
Thanks Steve. I knew there was another discussion around here about that.
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
Thank you Crystal Koi for your great article! I have tried to read it very carefully, but I'm afraid I don't totally understand. (I never had to work with charsets before).
First I will explain the problem. I am maintaining a few zen cart stores for my boss. Within these stores we have german language installed. German language contains a lot of umlaut characters, which are not displayed well in the product information or in the product titles in the menu.
My boss is not happy with it (I can't blame him) and wants me to change it. But I don't know how to change it on a working store. Will your fix work on a running store? And can I convert the db tables to utf-8 without problems? If so, how should I proceed?
Thank you in advance!
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
I see lots of talk about changing query_factory.php to accommodate UTF-8, but for admin there is also query_factory.php
I see no mention of modding this as well. I did and all seems to work there fine now too.
Also for changing your database after the fact, instead of going in and changing each field in each table, the following script works nicely. It will output a rather large list of alter table sql that you can copy and paste into phpmyadmin and change all at once. I didn't write this, but have used it and my confidence is high. It will also pickup and generate sql for any tables your other mods have added.
Use at your own risk.
Code:
<?php
// this script will output the queries need to change all fields/tables to a different collation
// it is HIGHLY suggested you take a MySQL dump prior to running any of the generated
// this code is provided as is and without any warranty
die("Make a backup of your MySQL database then remove this line");
set_time_limit(0);
// collation you want to change:
$convert_from = 'latin1_swedish_ci';
// collation you want to change it to:
$convert_to = 'utf8_general_ci';
// character set of new collation:
$character_set= 'utf8';
$show_alter_table = true;
$show_alter_field = true;
// DB login information
$username = 'user';
$password = 'pass';
$database = 'dbname';
$host = 'localhost';
mysql_connect($host, $username, $password);
mysql_select_db($database);
$rs_tables = mysql_query(" SHOW TABLES ") or die(mysql_error());
print '<pre>';
while ($row_tables = mysql_fetch_row($rs_tables)) {
$table = mysql_real_escape_string($row_tables[0]);
// Alter table collation
// ALTER TABLE `account` DEFAULT CHARACTER SET utf8
if ($show_alter_table) {
echo("ALTER TABLE `$table` DEFAULT CHARACTER SET $character_set;\r\n");
}
$rs = mysql_query(" SHOW FULL FIELDS FROM `$table` ") or die(mysql_error());
while ($row=mysql_fetch_assoc($rs)) {
if ($row['Collation']!=$convert_from)
continue;
// Is the field allowed to be null?
if ($row['Null']=='YES') {
$nullable = ' NULL ';
} else {
$nullable = ' NOT NULL';
}
// Does the field default to null, a string, or nothing?
if ($row['Default']=='NULL') {
$default = " DEFAULT NULL";
} else if ($row['Default']!='') {
$default = " DEFAULT '".mysql_real_escape_string($row['Default'])."'";
} else {
$default = '';
}
// Alter field collation:
// ALTER TABLE `account` CHANGE `email` `email` VARCHAR( 50 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
if ($show_alter_field) {
$field = mysql_real_escape_string($row['Field']);
echo "ALTER TABLE `$table` CHANGE `$field` `$field` $row[Type] CHARACTER SET $character_set COLLATE $convert_to $nullable $default; \r\n";
}
}
}
?>
Make sure to edit in your proper username and passwd and stuff and do a backup before running the output of this script.
Kudos to whoever wrote this, it has saved me much time.
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
I have installed recently Zen Cart and follow the instructions for installing the Japanese Pack given on srw2d.com and made the utf8 encoding conversions. The only thing I might have made wrong is that I have overwritten the files: admin/index.php, admin/invoice.php, includes/modules/payment/paypal.php, includes/functions/functions_general.php, includes/classes/order.php after installing Zen cart in English. I don't know if the order is important?
Every things seems to work fine except the Japanese informations in the admin customers panel (next to modules). The characteres are strange, for example 田中 (Tanaka) become 縺輔→縺ソ . In my SQL Data base the names and address are written correctly in Japanese and I hope that there would not be any problem during the payment?
Any suggestion to correct that problem? I have read all this thread to find a solution but I couldn't find it.
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
@ kiddo:
Sorry for my late response, I was on holiday so hadn't checked back for a while.
Thank you very much for the script! I will use it later on the week and report back on how it went!
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
Quote:
Originally Posted by
jvanree
I am maintaining a few zen cart stores for my boss. Within these stores we have german language installed. German language contains a lot of umlaut characters, which are not displayed well in the product information or in the product titles in the menu.
I solved the same problem with this thread's help.
As my database was already online I followed these steps to convert it to UTF-8:
- Complete export of database from phpmyadmin (including Add DROP TABLE / VIEW / PROCEDURE / FUNCTION setting)
- Then export file editing to change every instances of CHARSET=latin1 to CHARSET=utf8
- Import of modified file to recreate database from scratch with every previous content (but in utf8)
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
@ moosesoom.. Thank you very much for your answer!!
Re: UTF-8 Zen-Cart Tutorial for v1.3.x
Quote:
Originally Posted by
moosesoom
I solved the same problem with this thread's help.
As my database was already online I followed these steps to convert it to UTF-8:
- Complete export of database from phpmyadmin (including Add DROP TABLE / VIEW / PROCEDURE / FUNCTION setting)
- Then export file editing to change every instances of CHARSET=latin1 to CHARSET=utf8
- Import of modified file to recreate database from scratch with every previous content (but in utf8)
Hello Moosemoon,
Could you write of resume of the steps to follow for an already installed Zen-Cart 1.38 shop.
Thank you.