PHP and MySQL UTF8 coded Chinese example, _php tutorial

Source: Internet
Author: User

PHP and MySQL in the UTF8 encoding of the Chinese sort instance,


In this paper, the example of PHP and MySQL in the UTF8 encoding Chinese sorting method, shared for everyone to reference. The implementation method is as follows:

Generally speaking, there are three kinds of sorting methods in Chinese:

1. Sort by pinyin;
2. Sort by stroke;
3. Sort by the radicals.

The default ordering of the system is the phonetic sort, this is also commonly used, the following is to be sorted by pinyin

1. Need to sort in the PHP array in Chinese, but generally use UTF8 format files, directly with the asort sort not. You can use GBK and gb2312. This is related to the encoding of several formats. The code of GBK and gb2312 itself is sorted by pinyin.

Copy the Code code as follows: Function Utf8_array_asort (& $array)
{
if (!isset ($array) | |!is_array ($ARRAY))
{
return false;
}
foreach ($array as $k = $v)
{
$array [$k] = iconv (' UTF-8 ', ' Gbk//ignore ', $v);
}
Asort ($array);
foreach ($array as $k = $v)
{
$array [$k] = iconv (' GBK ', ' Utf-8//ignore ', $v);
}
return true;
}

2. In MySQL, we often sort a field query, but in Chinese sorting and search, the Chinese character sorting and search results are often wrong. This situation is present in many versions of MySQL.

If this problem is not resolved, then MySQL will not be able to actually handle Chinese. This problem occurs because MySQL is case insensitive when querying strings, and when Yi MySQL is generally used as the default character set for the ISO-8859 character set, this behavior is caused by the Chinese encoding character-case conversion during comparison.

Workaround:

For fields that contain Chinese, add the "binary" attribute to the binary comparison, for example, "name char (10)" to "name Char (TEN) binary".

If you compile MySQL using the source code, you can compile MySQL using the--WITH--CHARSET=GBK parameter, so that MySQL will directly support the Chinese search and sort (default is Latin1). You can also use EXTRA-CHARSETS=GB2312,GBK to add multiple character sets.

If you do not want to modify the table structure or recompile MySQL, you can also use the CONVERT function in the order by section of the query statement. Like what

Copy the code as follows: SELECT * FROM MyTable ORDER by CONVERT (Chinesecolumnname USING GBK);

It is hoped that this article is helpful to everyone's php+mysql program design.




http://www.bkjia.com/PHPjc/897692.html www.bkjia.com true http://www.bkjia.com/PHPjc/897692.html techarticle PHP and MySQL in the UTF8 encoding of the Chinese sorting example, this article describes the PHP and MySQL UTF8 encoding Chinese sorting method, shared for everyone to reference. The concrete implementation method is as follows: ...

  • Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.