Charset trouble | Member | | Join Date: Sep 2009
Posts: 56
| |
Hi guys, good morning.
I've just get this script for converting mysql tables from wordpress, and I want to use it in my server, but no with wordpress, with oscommerce, a friend of mine told me a few things I should do for make it working, but less than a rookie in PHP, began studying it now ¬¬", and sure I dont know how to use command line yet, she told me something about using command line along with FTP ascii table, I'm lost, couldn't do that, how do I install it? How do I configurate it?
Ps: the script is for converting ascii characters for utf-8 or latin1. If u have anything else that can help me instead of using it, please let me know, here u see how's oscommerce http://www.mghospedagem.com/catalog/
u can see on the left that there are strange characters (oscommerce chars configuration is correct, the trouble's with the server, I contacted em but they didn't nothing, that's why I'm trying to install this script)
Here goes the script "convert_to_utf8_sql_generator_extended.txt" - <?php
-
/*
-
Template Name: Convert Database to UTF8
-
-
Copyright 2007 Anders Stalheim Oefsdahl (email : anders@apt.no)
-
Detail at http://www.mydigitallife.info/2007/07/22/how-to-convert-character-set-and-collation-of-wordpress-database/
-
-
Bug fix by My Digital Life on 22 June 2007.
-
-
This program is free software; you can redistribute it and/or modify
-
it under the terms of the GNU General Public License as published by
-
the Free Software Foundation; either version 2 of the License, or
-
(at your option) any later version.
-
-
This program is distributed in the hope that it will be useful,
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-
GNU General Public License for more details.
-
-
You should have received a copy of the GNU General Public License
-
along with this program; if not, write to the Free Software
-
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-
*/
-
-
echo '<h1>Convert Database to UTF8</h1>';
-
-
echo '<p>This script generates SQL to convert existing tables to utf8, following the guide at <a href="http://codex.wordpress.org/Converting_Database_Character_Sets">http://codex.wordpress.org/Converting_Database_Character_Sets</a>, temporarily setting various fields to BLOB before setting them back to their respective types.</p>';
-
echo '<p>This is an extended script for databases which are already utf8 but the strings are in latin1. It converts existing tables and colums to latin1 before the BLOB conversion</p>';
-
echo '<p>Please note that you probably will get some errors running the scripts, regarding key length on some tables. These errors can be ignored (at least I did :).</p>';
-
-
require_once("wp-config.php");
-
global $wpdb;
-
-
/**
-
* Fetch all tables
-
*/
-
$tables = array();
-
$sql_tables = "SHOW TABLES";
-
$res_tables = $wpdb->get_results( $sql_tables );
-
if( is_array( $res_tables ) ){
-
foreach( $res_tables as $res_table ){
-
if(strpos($res_table->Tables_in_DATABASENAME, $table_prefix) === 0)
-
$tables[$res_table->Tables_in_DATABASENAME] = array();
-
}
-
}
-
/**
-
* Loop all tables fetching each table's fields and filter out fields of type CHAR, VARCHAR, TEXT, ENUM, and SET (and related variations)
-
*/
-
if( count( $tables )>0 ){
-
foreach( $tables as $table=>$fields ){
-
// if (strpos($table_prefix, $table) == 0)
-
// {
-
$sql_fields = "EXPLAIN ".$table;
-
$res_fields = $wpdb->get_results( $sql_fields );
-
if( is_array( $res_fields ) ){
-
foreach( $res_fields as $field ){
-
switch( TRUE ){
-
case strpos( strtolower( $field->Type ), 'char' )===0:
-
case strpos( strtolower( $field->Type ), 'varchar' )===0:
-
case strpos( strtolower( $field->Type ), 'text' )===0:
-
case strpos( strtolower( $field->Type ), 'enum' )===0:
-
case strpos( strtolower( $field->Type ), 'set' )===0:
-
case strpos( strtolower( $field->Type ), 'tinytext' )===0:
-
case strpos( strtolower( $field->Type ), 'mediumtext' )===0:
-
case strpos( strtolower( $field->Type ), 'longtext' )===0:
-
$tables[$table][$field->Field] = $field->Type;
-
break;
-
-
default:
-
break;
-
}
-
}
-
// }
-
}
-
}
-
}
-
-
$tables_to_latin1 = '';
-
$tables_to_utf8 = '';
-
$columns_to_latin1 = '';
-
$columns_to_blob = '';
-
$columns_to_utf8 = '';
-
-
foreach( $tables as $table=>$fields ){
-
$tables_to_latin1 .= "\nALTER TABLE ".$table." DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;";
-
$tables_to_utf8 .= "\nALTER TABLE ".$table." DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;";
-
if( count( $fields )>0 ){
-
foreach( $fields as $name=>$type ){
-
$columns_to_latin1 .= "\nALTER TABLE ".$table." MODIFY ".$name." CHARACTER SET latin1 COLLATE latin1_swedish_ci;";
-
$columns_to_blob .= "\nALTER TABLE ".$table." MODIFY ".$name." BLOB;";
-
$columns_to_utf8 .= "\nALTER TABLE ".$table." MODIFY ".$name." ".$type.";";
-
}
-
}
-
}
-
-
//$complete_sql = $sql_to_blob."\nALTER DATABASE ".DB_NAME." charset=utf8;".$sql_to_utf8.$sql_to_original;
-
$complete_sql = $tables_to_latin1."\n".$columns_to_latin1."\n".$columns_to_blob."\n".$tables_to_utf8."\n".$columns_to_utf8;
-
-
echo nl2br( $complete_sql );
-
-
?>
|  | Moderator | | Join Date: Jun 2007 Location: York, England, with wolves.
Posts: 4,936
| | | re: Charset trouble
This seems like overkill. You might just change the content-type header of the page to something like: ISO-8859-1. -
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-
</head>
-
<body>
-
...
-
| | Member | | Join Date: Sep 2009
Posts: 56
| | | re: Charset trouble
Sorry, but...
I already did it =/
|  | Moderator | | Join Date: Jun 2007 Location: York, England, with wolves.
Posts: 4,936
| | | re: Charset trouble
Try 'utf-8'.
| | Member | | Join Date: Sep 2009
Posts: 56
| | | re: Charset trouble
It doesn't works, I tried both. That friend of mine told me that the trouble is with the server, that I should install a script that correct that. She did it in her server, made a script and it worked,
I asked if she could handle me the script but she sad she spent hours making it, now I found that one on the internet, shown her and she said that it will work if I install it corretly, she tryied to teach me how to install and configurate but dindt has too much time, she has been pretty busy.
| | Member | | Join Date: Sep 2009
Posts: 56
| | | re: Charset trouble
Anyone?
...
...
...
|  | | | | /bytes/about
We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights.
Get the best answers to your questions from over 226,272 network members.
|