Solved

Delphi to mysql to html

Posted on 2012-04-12
6
464 Views
Last Modified: 2012-04-26
A user enters text into a Delphi program, Delphi puts it into a MySQL table. The charset is latin1. The collation is latin1_swedish_ci.

Then php put the data on a web page. Now there is a problem, Swedish characters turns into garbage. This probably can be fixed in the php end, but I would prefer that MySQL took care of this. MySql knows the charset and the collation, so I am looking for some MySQL command that translates this into HTML before it leaves the MySQL server.
0
Comment
Question by:Sunsales
6 Comments
 
LVL 24

Expert Comment

by:johanntagle
ID: 37840788
I don't know of any existing mysql function that does this (you can find all available string functions at http://dev.mysql.com/doc/refman/5.5/en/string-functions.html).

On the web page I think it is only a matter of setting the correct charset on the header.  Something like Content-Type: text/plain; charset=ISO-8859-1
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 37841279
a database is a data storage/calculation device, not a display device

it is up to the display device to show things the way things should be shown
just imagine internet explorer automatically displaying all languages in chinees
> trying to solve this in the database wouldn't get you anywhere

displaying is a matter of correctly translating
> the database has no clue what language is used in the display device
0
 

Author Comment

by:Sunsales
ID: 37841380
> the database has no clue what language is used in the display device

The database collation is set to "latin1_swedish_ci", so the database knows what language is used, the theoretical either a php or a mysql functon is used to encode this to html. I don't see any harm in the MySQL team add a function to encode into html, it might even make MySQL more popular. Something like:

HtmlEncoded Select  * from TableAlfa where ....;


But when no such function exists, then il guess that PHP better take care of it.
0
Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

 
LVL 24

Expert Comment

by:johanntagle
ID: 37841409
Actually I think it will harm the reputation of the MySQL team if they prioritize adding such a feature over other more needed fixes.  Also, I doubt if it will be a popular feature, because the recommended practice is to decouple functionality, i.e. keep business/data logic and presentation logic separate.  This will also allow you to easily customize presentation to different types of devices i.e. desktop vs mobile browsers.

Please also note that the display of international characters also depends on what the page tells the browser what character set the content uses and whether the browser can support it.  This is clearly the business of presentation code.
0
 
LVL 37

Accepted Solution

by:
Geert Gruwez earned 400 total points
ID: 37841484
you set the collation to latin1_swedish_ci
> this means that a mapping will occur to this character set
the mapping is usually done by the client which has been configured to "know" what "the character set for displaying" (A) and "the character set in the db is" (B)

you can actually fool the client into believing that chinese (for "A) is actually swedish so it doesn't do any mapping
> this way you can store "chinese" in a swedish database
>> off course, when you use a client which hasn't been "fooled around with" it will do incorrect mappings and the display device will show garbage on screen
0
 
LVL 9

Expert Comment

by:rinfo
ID: 37842408
Try iconv while sending data to php.
you have to install iconv module.

iconv("ISO-8859-1,"UTF-8" //TRANSLIT", $yourdata);

However best thing would be to try and  mysql for UTF8 instead of latin1;
0

Featured Post

Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
This article discusses how to create an extensible mechanism for linked drop downs.
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

27 Experts available now in Live!

Get 1:1 Help Now