Make WordPress Core


Ignore:
Timestamp:
05/23/2016 05:53:02 AM (9 years ago)
Author:
pento
Message:

Database: Obey locale-specific utf8 collation settings.

Some sites prefer to use locale-specific location settings. For example, the Swedish WordPress package use utf8_swedish_ci, instead of utf8_unicode_ci. When upgrading the connection to utf8mb4, we were overriding this to be utf8mb4_unicode_ci, instead of maintaining the use of the _swedish_ci variant.

The locale-specific collations do have extra collation rules just for that language, so it's useful to maintain compatibility.

Fixes #32405.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/db.php

    r36997 r37521  
    956956        $wpdb->check_connection();
    957957    }
     958
     959    /**
     960     * @ticket 32405
     961     */
     962    function test_non_unicode_collations() {
     963        global $wpdb;
     964
     965        if ( ! $wpdb->has_cap( 'utf8mb4' ) ) {
     966            $this->markTestSkipped( 'This test requires utf8mb4 support' );
     967        }
     968
     969        $charset = $wpdb->charset;
     970        $collate = $wpdb->collate;
     971
     972        $wpdb->init_charset( 'utf8', 'utf8_swedish_ci' );
     973
     974        $this->assertSame( 'utf8mb4', $wpdb->charset );
     975        $this->assertSame( 'utf8mb4_swedish_ci', $wpdb->collate );
     976
     977        $wpdb->init_charset( $charset, $collate );
     978    }
    958979}
Note: See TracChangeset for help on using the changeset viewer.