-
Notifications
You must be signed in to change notification settings - Fork 12.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Quick-fix: Normalize UTF-8 charset slug detection.
In the merge of [58417] the new file was missed. This commit adds the missing required file. Developed in WordPress/wordpress-develop#6535 Discussed in https://core.trac.wordpress.org/ticket/61182 Fixes #61182. Follow-up to [58147]. Props dmsnell, jonsurrell. Built from https://develop.svn.wordpress.org/trunk@58148 git-svn-id: http://core.svn.wordpress.org/trunk@57613 1a063a9b-81f0-0310-95a4-ce76da25c4cd
- Loading branch information
Showing
2 changed files
with
52 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
<?php | ||
/** | ||
* WordPress API providing Unicode-relevant utilities. | ||
* | ||
* @since 6.6.0 | ||
* | ||
* @package WordPress | ||
*/ | ||
|
||
/** | ||
* Indicates if a given slug for a character set represents the UTF-8 | ||
* text encoding. If not provided, examines the current blog's charset. | ||
* | ||
* A charset is considered to represent UTF-8 if it is a case-insensitive | ||
* match of "UTF-8" with or without the hyphen. | ||
* | ||
* Example: | ||
* | ||
* true === is_utf8_charset( 'UTF-8' ); | ||
* true === is_utf8_charset( 'utf8' ); | ||
* false === is_utf8_charset( 'latin1' ); | ||
* false === is_utf8_charset( 'UTF 8' ); | ||
* | ||
* // Only strings match. | ||
* false === is_utf8_charset( [ 'charset' => 'utf-8' ] ); | ||
* | ||
* // Without a given charset, it depends on the site option "blog_charset". | ||
* $is_utf8 = is_utf8_charset(); | ||
* | ||
* @since 6.6.0 | ||
* | ||
* @param ?string $blog_charset Slug representing a text character encoding, or "charset". | ||
* E.g. "UTF-8", "Windows-1252", "ISO-8859-1", "SJIS". | ||
* @return bool Whether the slug represents the UTF-8 encoding. | ||
*/ | ||
function is_utf8_charset( $blog_charset = null ) { | ||
$charset_to_examine = $blog_charset ?? get_option( 'blog_charset' ); | ||
|
||
/* | ||
* Only valid string values count: the absence of a charset | ||
* does not imply any charset, let alone UTF-8. | ||
*/ | ||
if ( ! is_string( $charset_to_examine ) ) { | ||
return false; | ||
} | ||
|
||
return ( | ||
0 === strcasecmp( 'UTF-8', $charset_to_examine ) || | ||
0 === strcasecmp( 'UTF8', $charset_to_examine ) | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters