tags:

views:

39

answers:

1

Hi!

I've an excel file with non-English characters in it. when i open the excel file, i get random English characters. But when i change the font to that language, i can read valid text.

But the problem is, when i load the data from that excel file to mysql through php, i get only those random English characters. I'm not getting the language that i wanted in either mysql or php.

I changed the character set to utf-8 in mysql and also used:

mysql_query('SET collation_server=utf8_general_ci');
mysql_query('SET collation_connection=utf8_general_ci');
mysql_query('SET collation_database=utf8_general_ci');

mysql_query('SET character_set_server = utf8');
mysql_query('SET character_set_database = utf8');
mysql_query('SET character_set_results = utf8');
mysql_query('SET character_set_client = utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET names utf8;');
mysql_query('SET character_set utf8;');

after php-mysql connection.

What should i do to display the fonts automatically in the browser? BTW, if i change the browser's font, i can read the valid text.

Thanks.

A: 

If you really have to change to a specific font to display the characters (rather than merely setting the encoding correctly), then what you have is a font-specific custom “visual encoding”, where the characters involved are normal ASCII characters, but the glyphs mapped to those characters in the font don't look anything like those ASCII characters.

This is a terrible, terrible hack, that can never work on the internet. It was sometimes necessary in the old days (before Unicode) to represent unusual languages that had no official encoding, but these days almost everything has a proper code point.

If this is what you're talking about I'm afraid you're going to have to go through each ASCII character, look at the glyph it maps to, and find out what the Unicode code point for the character that glyph really represents is. This will give you a custom-font-to-Unicode mapping that you'll have to use to convert all your data from its current format.

So what is the language, and what's the font?

(aside: use mysql_set_charset() to set the MySQL connection encoding from PHP, instead of any of the statements above.)

bobince