Encoding Special Characters in Web Output
Problem
Certain characters are special in web pages and must be encoded if you want to display them literally. Because database content often contains instances of these characters, scripts that include query results in web pages should encode those results to prevent browsers from misinterpreting the information.
Solution
Use the methods that are provided by your API for performing HTML-encoding and URL-encoding.
Discussion
HTML is a markup language: it uses certain characters as markers
that have a special meaning. To include literal instances of these
characters in a page, you must encode them so that they are not
interpreted as having their special meanings. For example, <
should be encoded as <
to keep a browser from interpreting
it as the beginning of a tag. Furthermore, there are actually two
kinds of encoding, depending on the context in which you use a
character. One encoding is appropriate for HTML text, another is used
for text that is part of a URL in a hyperlink.
The MySQL table-display scripts shown in Recipes and are simple demonstrations of how to
produce web pages using programs. But with one exception, the scripts
have a common failing: they take no care to properly encode special
characters that occur in the information retrieved from the MySQL
server. (The exception is the JSP version of the script. The <c:out>
tag used there handles
encoding automatically, as we’ll discuss shortly.)
As it happens, I deliberately chose ...
Get MySQL Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.