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
This commit is contained in:
Gary Pendergast 2016-05-23 06:31:44 +00:00
parent c231052280
commit a09ea91d16
1 changed files with 8 additions and 0 deletions

View File

@ -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;