Delphi to mysql to html

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.
Paer ToernellAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

johanntagleCommented:
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
Geert GOracle dbaCommented:
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
Paer ToernellAuthor Commented:
> 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
10 Tips to Protect Your Business from Ransomware

Did you know that ransomware is the most widespread, destructive malware in the world today? It accounts for 39% of all security breaches, with ransomware gangsters projected to make $11.5B in profits from online extortion by 2019.

johanntagleCommented:
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
Geert GOracle dbaCommented:
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

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
rinfoCommented:
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
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
MySQL Server

From novice to tech pro — start learning today.