This section describes how to display a Web form and process form Chinese input data in GB18030.
The next text I did is about Web form input in Chinese using GB18030 encoding,
which is a superset of GBK and GB2312. The test PHP script has the following features:
A HTML header tag <meta> is used to set the Web page with charset=gb18030
for GB18030 encoding.
A default input text is provided with some simplified Chinese characters in GB18030 encoding.
Since this book is using UTF-8 encoding, the GB18030 encoded characters are displayed as question
marks in the source code below.
The received text from the $_REQUEST array is displayed back on the returning Web page
as encoded characters. The received text is also displayed in Hex values to compare
with the HEX values of the default text.
<?php #Web-Form-Input-Chinese-GB18030.php
# Copyright (c) 2007 by Dr. Herong Yang, http://www.herongyang.com/
#
print('<html><head>');
print('<meta http-equiv="Content-Type"'.
' content="text/html; charset=gb18030"/>');
print('</head><body>'."\n");
# Default input text
$input = '???';
$input_hex = 'B5E7CAD3BBFA';
# Form reply determination
$reply = isset($_REQUEST["Submit"]);
# Process form input data
if ($reply) {
if (isset($_REQUEST["Input"])) {
$input = $_REQUEST["Input"];
}
}
# Display form
print('<form>');
print('<input type="Text" size="40" maxlength="64"'
. ' name="Input" value="'.$input.'"/><br/>');
print('<input type="Submit" name="Submit" value="Submit"/>');
print('</form>'."\n");
# Display reply
if ($reply) {
print('<pre>'."\n");
print('Content-Type:'."\n");
print(' text/html; charset=gb18030'."\n");
print('You have submitted:'."\n");
print(' Text = '.$input."\n");
print(' Text in HEX = '.strtoupper(bin2hex($input))."\n");
print(' Default HEX = '.$input_hex."\n");
print('</pre>'."\n");
}
print('</body></html>');
?>
After moving this PHP script file to Apache server document directory, I tested it with Internet Explorer (IE)
with this URL: http://localhost/Web-Form-Input-Chinese-GB18030.php. I saw a Web page with a form that has the
suggested input text and a submit button.
The default input Chinese characters were displayed correctly.
After clicking the submit button, I saw a returning Web page with the same form and a reply section.
The Chinese input characters were received by PHP correctly:
It is interesting to note that the return Web page has a special URL which
contains the input text inside the query string.
The Chinese characters are included as Hex values of GB18030 byte sequences: