Solved

Delphi to mysql to html

Posted on 2012-04-12
6
466 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
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

 
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

The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

Question has a verified solution.

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

Suggested Solutions

In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

803 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