From a09ea91d16db4c5416431193d6d50d9c65c1394d Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Mon, 23 May 2016 06:31:44 +0000 Subject: [PATCH] Database: Use the `utf8mb4_unicode_520_ci` collation, when available. The `utf8mb4_unicode_520_ci` (Unicode Collation Algorithm 5.2.0, October 2010) collation is an improvement over `utf8mb4_unicode_ci` (UCA 4.0.0, November 2003). There is no word on when MySQL will support later UCAs. Fixes #32105. git-svn-id: https://develop.svn.wordpress.org/trunk@37523 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/wp-db.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/wp-includes/wp-db.php b/src/wp-includes/wp-db.php index 8d9f84c63e..49b6a9ddb8 100644 --- a/src/wp-includes/wp-db.php +++ b/src/wp-includes/wp-db.php @@ -765,6 +765,11 @@ class wpdb { $this->collate = str_replace( 'utf8_', 'utf8mb4_', $this->collate ); } } + + // _unicode_520_ is a better collation, we should use that when it's available. + if ( $this->has_cap( 'utf8mb4_520' ) && 'utf8mb4_unicode_ci' === $this->collate ) { + $this->collate = 'utf8mb4_unicode_520_ci'; + } } /** @@ -3193,6 +3198,7 @@ class wpdb { * * @since 2.7.0 * @since 4.1.0 Support was added for the 'utf8mb4' feature. + * @since 4.6.0 Support was added for the 'utf8mb4_520' feature. * * @see wpdb::db_version() * @@ -3231,6 +3237,8 @@ class wpdb { } else { return version_compare( $client_version, '5.5.3', '>=' ); } + case 'utf8mb4_520' : // @since 4.6.0 + return version_compare( $version, '5.6', '>=' ); } return false;