gosman

msg:3553699 | 5:28 pm on Jan 21, 2008 (gmt 0) |
Hi HoboTraveler. I had the same trouble. Try this <!-- xml version="1.0" encoding="UTF-8" --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body> <?php echo $utf8variable;?> <body> <html>
|
HoboTraveler

msg:3553788 | 6:41 pm on Jan 21, 2008 (gmt 0) |
Hello, That did not work. Anyone have suggestions? TIA
|
PHP_Chimp

msg:3553800 | 6:51 pm on Jan 21, 2008 (gmt 0) |
Have you tried with more than 1 browser, to check if this is a browser issue, rather than a php/html issue?
|
HoboTraveler

msg:3553820 | 7:11 pm on Jan 21, 2008 (gmt 0) |
Yes, I tested the script on Internet Explorer, Firefox an Opera. The? appeared on all three browsers. This seems like an issue with PHP. hmm.. I guess if that was the case phpMyAdmin would display the? too but phpMyAdmin has no issues. TIA [edited by: HoboTraveler at 7:13 pm (utc) on Jan. 21, 2008]
|
jatar_k

msg:3553827 | 7:17 pm on Jan 21, 2008 (gmt 0) |
are you setting content-type properly in the html document?
|
ksks

msg:3553972 | 9:49 pm on Jan 21, 2008 (gmt 0) |
Try <?php mb_internal_encoding("UTF-8"); ?> first line of php code...I had to do this when trying a Bulgarian -> English translator type project.
|
mipapage

msg:3554055 | 11:19 pm on Jan 21, 2008 (gmt 0) |
In firefox, right click and view page info. Check for the "Encoding". What does it say?
|
HoboTraveler

msg:3554256 | 5:19 am on Jan 22, 2008 (gmt 0) |
@ksks, The mb_internal_encoding did not work. @mipapage, Firefox > Character Encoding > is on Unicode(UTF-8) Internet Explorer > is on Unicode(UTF-8)
|
mipapage

msg:3554301 | 6:58 am on Jan 22, 2008 (gmt 0) |
Okay HoboTraveler, You know that the page is in utf-8, so my guess is that you are double utf-8 encoding somewhere. Sounds strange, but I seem to recall having done this myself somewhere. Besides the two things you outlined in your first message, is there anything else you are trying in the process to get these characters to utf-8?
|
HoboTraveler

msg:3554316 | 7:52 am on Jan 22, 2008 (gmt 0) |
Hello, I've listed below the contents of my AMP config files. These are the only config areas where I've enabled UTF8. php.ini contents default_charset = "utf-8" my.cnf contents [client] default-character-set=utf8 [mysqld] character-set-server=utf8 default-character-set=utf8 default-collation=utf8_unicode_ci character-set-client = utf8 httpd.conf contents AddDefaultCharset UTF-8 and the php script itself has this in the first line: header('content-type: text/html; charset: utf-8'); TIA
|
omoutop

msg:3554360 | 9:26 am on Jan 22, 2008 (gmt 0) |
since you have covered all aspects of headers and encoding... perhpas your data were saved in db in utf-8 encoding.... have you tried to utf8_decode() your data to screen? long shot here, but there is nothing else i can think of
|
HoboTraveler

msg:3554392 | 10:30 am on Jan 22, 2008 (gmt 0) |
Hello, The utf8 decode did not work. I've listed two records from the table. These are greek characters. ΑΠΟΛΩΝΊΑk ΣΊΦΝΟΣ Maybe someone could insert these in a UTF8 MySQL and call them from a PHP script. TIA
|
omoutop

msg:3554402 | 10:49 am on Jan 22, 2008 (gmt 0) |
first line read APOLONIA and second line reads SIFNOS (in greek characters), all capitalized i am curious... did this problem appeared during the transfer of a database export to another db?
|
HoboTraveler

msg:3554418 | 11:31 am on Jan 22, 2008 (gmt 0) |
@omoutop, You are correct. The first line is APOLONIA and second is SIFNOS (greek). This issue did not occur between databases. I imported the characters correctly into MySQL and have not been able to read them from my PHP scripts since. This forum encoded the Greek characters that I pasted earlier. How did you insert the characters into your db? Did you insert the string that I pasted? In my db, the names are inserted in the non-encoded format. That is, APOLONIA and SIFNOS in greek. Were you able to store the non-encoded names into the db and then read them correctly through your PHP script? If so, I would appreciate if you could share your PHP script. Thank You
|
Romeo

msg:3554419 | 11:32 am on Jan 22, 2008 (gmt 0) |
Besides the definitions already discussed, the connection between the client and server may use own connection-related character set and collation system variables. So you may try to add a: [mysqld] init-connect='SET NAMES utf8' to set this as a default for all connections, or start with these queries after your specific script connects to the database before sending other queries: SET NAMES utf8; SET CHARACTER_SET utf8; Kind regards, R.
|
omoutop

msg:3554422 | 11:43 am on Jan 22, 2008 (gmt 0) |
nope, i didnt insert them into db, i just pste them into a iso-8859-7 (greek) and a utf-8 encoding page to read them. They read correclty in both pages.
|
HoboTraveler

msg:3554430 | 12:01 pm on Jan 22, 2008 (gmt 0) |
@Romeo, Adding the init-connect did not work. I am pasting below the output for show variables. Maybe there is something there I may have missed. mysql> show variables like 'c%'; +--------------------------+-------------------------------------------------------------------+ ¦ Variable_name ¦ Value ¦ +--------------------------+-------------------------------------------------------------------+ ¦ character_set_client ¦ utf8 ¦ ¦ character_set_connection ¦ utf8 ¦ ¦ character_set_database ¦ utf8 ¦ ¦ character_set_filesystem ¦ binary ¦ ¦ character_set_results ¦ utf8 ¦ ¦ character_set_server ¦ utf8 ¦ ¦ character_set_system ¦ utf8 ¦ ¦ character_sets_dir ¦ /usr/local/mysql-standard-5.0.27-linux-i686/share/mysql/charsets/ ¦ ¦ collation_connection ¦ utf8_general_ci ¦ ¦ collation_database ¦ utf8_unicode_ci ¦ ¦ collation_server ¦ utf8_unicode_ci ¦ ¦ completion_type ¦ 0 ¦ ¦ concurrent_insert ¦ 1 ¦ ¦ connect_timeout ¦ 5 ¦ +--------------------------+-------------------------------------------------------------------+ TIA
|
HoboTraveler

msg:3554449 | 12:38 pm on Jan 22, 2008 (gmt 0) |
It worked! I was able to read the UTF8 characters correctly from the db! What happened was, I was calling an includes file that contains the database connect info. The includes file connected to multiple databases, some latin and some UTF8. I removed the includes file and tested by just calling the UTF8 database. The data displayed correctly. How do I get UTF8 to work with the includes file? Is there a way to specify the UTF8 in the mysql_connect or mysql_select_db function? I guess that would selectively force UTF8 on the database that uses it? TIA
|
omoutop

msg:3554451 | 12:41 pm on Jan 22, 2008 (gmt 0) |
try somethig like: mysql_query(SET NAMES utf8); after mysql connection.
|
HoboTraveler

msg:3554452 | 12:43 pm on Jan 22, 2008 (gmt 0) |
Update: I think I got it to work with multiple databases! I've inserted the line: mysql_query('SET NAMES utf8'); just after the mysql_connect() and it seems to work. I though this line was not needed since UTF8 is forced in the MySQL config file..? Thank You all for your help.
|
omoutop

msg:3554460 | 12:50 pm on Jan 22, 2008 (gmt 0) |
Nice! good job and well done :)
|
mipapage

msg:3554479 | 1:23 pm on Jan 22, 2008 (gmt 0) |
| I've listed two records from the table. These are greek characters. ΑΠΟΛΩΝΊΑk ΣΊΦΝΟΣ |
| Is that what you see in phpmyadmin in the textbox/area for that data? If so, Ive seen this before but cannot recall exactly what we did to sort it out. We had a mysql db storing Cyrillic characters as entities, as you do, but you want mysql to store the utf-8 characters. What we did here was to work over the DB so that it stored the actual utf-8 characters, not the entities. I'll have to poke around but I remember using some functions that I found on php.net, including utf8dec, uft8html2utf8 and some others.
|
mipapage

msg:3554480 | 1:24 pm on Jan 22, 2008 (gmt 0) |
Oops, looks like I was too late. Glad you got it sorted out :)
|
|