From 29748cfe590cdfca06c830f9a9e29655325262b0 Mon Sep 17 00:00:00 2001 From: Erik Landvall Date: Sat, 28 Sep 2013 16:49:04 +0200 Subject: [PATCH 01/42] Namespace definition.. For clarity asked for in issue #10 --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 3426137..6fd4f8a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ forceutf8 ========= -PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings. +PHP Class Encoding featuring popular \ForceUTF8\Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings. Description =========== @@ -21,20 +21,20 @@ I've included another function, Encoding::fixUTF8(), wich will fix the double (o Usage: ====== - $utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string); + $utf8_string = \ForceUTF8\Encoding::toUTF8($utf8_or_latin1_or_mixed_string); $latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string); also: - $utf8_string = Encoding::fixUTF8($garbled_utf8_string); + $utf8_string = \ForceUTF8\Encoding::fixUTF8($garbled_utf8_string); Examples: - echo Encoding::fixUTF8("Fédération Camerounaise de Football"); - echo Encoding::fixUTF8("FÃédÃération Camerounaise de Football"); - echo Encoding::fixUTF8("FÃÃédÃÃération Camerounaise de Football"); - echo Encoding::fixUTF8("FÃÃÃédÃÃÃération Camerounaise de Football"); + echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football"); + echo \ForceUTF8\Encoding::fixUTF8("FÃédÃération Camerounaise de Football"); + echo \ForceUTF8\Encoding::fixUTF8("FÃÃédÃÃération Camerounaise de Football"); + echo \ForceUTF8\Encoding::fixUTF8("FÃÃÃédÃÃÃération Camerounaise de Football"); will output: From f7960f1a31d8377eab5d828ca9171a6cfe9d0f85 Mon Sep 17 00:00:00 2001 From: Jason Pirkey Date: Wed, 2 Apr 2014 13:37:03 -0300 Subject: [PATCH 02/42] Fix issue where truncation or infinite loop might occur. Text is truncated when calling Encoding::fixUTF8 if mb_strlen is overloading strlen. This is because mb_strlen returns the char length instead of the byte length of the string. --- src/ForceUTF8/Encoding.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 219bc25..ec49528 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -180,8 +180,13 @@ static function toUTF8($text){ } return $text; } elseif(is_string($text)) { + + if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { + $max = mb_strlen($text,'8bit'); + } else { + $max = strlen($text); + } - $max = strlen($text); $buf = ""; for($i = 0; $i < $max; $i++){ $c1 = $text{$i}; From 09955a49947a00521f1f88923e795709bb653810 Mon Sep 17 00:00:00 2001 From: Pascal Borreli Date: Mon, 14 Apr 2014 21:40:50 +0100 Subject: [PATCH 03/42] Fixed typos --- README.md | 4 ++-- src/ForceUTF8/Encoding.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3426137..e245611 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ If you apply the PHP function utf8_encode() to an already-UTF8 string it will re This class addresses this issue and provides a handy static function called Encoding::toUTF8(). -You dont need to know what the encoding of your strings is. It can be Latin1 (iso 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. Encoding::toUTF8() will convert everything to UTF8. +You don't need to know what the encoding of your strings is. It can be Latin1 (iso 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. Encoding::toUTF8() will convert everything to UTF8. Sometimes you have to deal with services that are unreliable in terms of encoding, possibly mixing UTF8 and Latin1 in the same string. Update: -I've included another function, Encoding::fixUTF8(), wich will fix the double (or multiple) encoded UTF8 string that looks garbled. +I've included another function, Encoding::fixUTF8(), which will fix the double (or multiple) encoded UTF8 string that looks garbled. Usage: ====== diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 219bc25..6750bf0 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -229,7 +229,7 @@ static function toUTF8($text){ $cc2 = (($c1 & "\x3f") | "\x80"); $buf .= $cc1 . $cc2; } - } else { // it doesn't need convesion + } else { // it doesn't need conversion $buf .= $c1; } } From a3d35e030c49124e6e8c1209d20b23e428b83ad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 25 Jun 2014 13:45:07 -0300 Subject: [PATCH 04/42] Readme --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3f6dc72..2fc9fe0 100644 --- a/README.md +++ b/README.md @@ -8,22 +8,22 @@ Description If you apply the PHP function utf8_encode() to an already-UTF8 string it will return a garbled UTF8 string. -This class addresses this issue and provides a handy static function called Encoding::toUTF8(). +This class addresses this issue and provides a handy static function called \ForceUTF8\Encoding::toUTF8(). -You don't need to know what the encoding of your strings is. It can be Latin1 (iso 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. Encoding::toUTF8() will convert everything to UTF8. +You don't need to know what the encoding of your strings is. It can be Latin1 (iso 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. \ForceUTF8\Encoding::toUTF8() will convert everything to UTF8. Sometimes you have to deal with services that are unreliable in terms of encoding, possibly mixing UTF8 and Latin1 in the same string. Update: -I've included another function, Encoding::fixUTF8(), which will fix the double (or multiple) encoded UTF8 string that looks garbled. +I've included another function, \ForceUTF8\Encoding::fixUTF8(), which will fix the double (or multiple) encoded UTF8 string that looks garbled. Usage: ====== $utf8_string = \ForceUTF8\Encoding::toUTF8($utf8_or_latin1_or_mixed_string); - $latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string); + $latin1_string = \ForceUTF8\Encoding::toLatin1($utf8_or_latin1_or_mixed_string); also: From 3f071b2c2ecd050089312b57b46063ea5607e414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 25 Jun 2014 13:50:33 -0300 Subject: [PATCH 05/42] Instructions on how to install via composer --- README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/README.md b/README.md index 2fc9fe0..a42d757 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,22 @@ will output: Fédération Camerounaise de Football Fédération Camerounaise de Football Fédération Camerounaise de Football + +Install via composer: +===================== +Edit your composer.json file to include the following: + +```json +{ + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/neitanod/forceutf8" + } + ], + + "require" : { + "neitanod/forceutf8" : "master" + } +} +``` From f3aef1e208346733d677ece8cc42011d1fa6d415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 25 Jun 2014 13:56:05 -0300 Subject: [PATCH 06/42] Added author to composer.json --- composer.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/composer.json b/composer.json index 7f3fc0d..7924dfa 100644 --- a/composer.json +++ b/composer.json @@ -6,6 +6,12 @@ "require": { "php": ">=5.2.0" }, + "authors": [ + { + "name": "Sebastián Grignoli", + "email": "grignoli@gmail.com" + } + ], "autoload": { "psr-0": { "ForceUTF8\\": "src/" From 0623c8892f2d56c0c3eec2294490ef5bf0e26407 Mon Sep 17 00:00:00 2001 From: John Kelly Date: Thu, 26 Jun 2014 08:30:34 -0700 Subject: [PATCH 07/42] Fix composer install instructions --- README.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a42d757..71a785c 100644 --- a/README.md +++ b/README.md @@ -49,15 +49,8 @@ Edit your composer.json file to include the following: ```json { - "repositories": [ - { - "type": "vcs", - "url": "https://github.com/neitanod/forceutf8" - } - ], - - "require" : { - "neitanod/forceutf8" : "master" + "require": { + "neitanod/forceutf8": "dev-master" } } ``` From ce0484691199027c54d00afd003b0048e59db4cd Mon Sep 17 00:00:00 2001 From: Mark Stewart Date: Mon, 11 Aug 2014 17:29:16 -0600 Subject: [PATCH 08/42] Fixed issue with 4-byte characters not being written properly --- src/ForceUTF8/Encoding.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index b22b59a..91a15e8 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -214,8 +214,8 @@ static function toUTF8($text){ } } elseif($c1 >= "\xf0" & $c1 <= "\xf7"){ //looks like 4 bytes UTF8 if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2 . $c3; - $i = $i + 2; + $buf .= $c1 . $c2 . $c3 . $c4; + $i = $i + 3; } else { //not valid UTF8. Convert it. $cc1 = (chr(ord($c1) / 64) | "\xc0"); $cc2 = ($c1 & "\x3f") | "\x80"; From 174c97af230866d15cc459953fd04a4262b4112a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 14 Aug 2014 13:40:09 -0300 Subject: [PATCH 09/42] Normalize encoding label --- src/ForceUTF8/Encoding.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index b22b59a..00b2eff 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -300,7 +300,7 @@ static function removeBOM($str=""){ public static function normalizeEncoding($encodingLabel) { $encoding = strtoupper($encodingLabel); - $enc = preg_replace('/[^a-zA-Z0-9\s]/', '', $encoding); + $encoding = preg_replace('/[^a-zA-Z0-9\s]/', '', $encoding); $equivalences = array( 'ISO88591' => 'ISO-8859-1', 'ISO8859' => 'ISO-8859-1', From b2010fb491660ee1e3644ea23c7b443305b075f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 23 Sep 2014 19:26:55 -0300 Subject: [PATCH 10/42] Fixed --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a42d757..e8e246f 100644 --- a/README.md +++ b/README.md @@ -31,17 +31,15 @@ also: Examples: - echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football"); - echo \ForceUTF8\Encoding::fixUTF8("FÃédÃération Camerounaise de Football"); - echo \ForceUTF8\Encoding::fixUTF8("FÃÃédÃÃération Camerounaise de Football"); - echo \ForceUTF8\Encoding::fixUTF8("FÃÃÃédÃÃÃération Camerounaise de Football"); + echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); will output: Fédération Camerounaise de Football Fédération Camerounaise de Football Fédération Camerounaise de Football - Fédération Camerounaise de Football Install via composer: ===================== @@ -61,3 +59,5 @@ Edit your composer.json file to include the following: } } ``` +======= +>>>>>>> Stashed changes From 20549d94dd55c6bb843f4d6ac5637c95cff22d64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 23 Sep 2014 19:37:06 -0300 Subject: [PATCH 11/42] Fixed --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index cbe760e..bade661 100644 --- a/README.md +++ b/README.md @@ -34,12 +34,14 @@ Examples: echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); will output: Fédération Camerounaise de Football Fédération Camerounaise de Football Fédération Camerounaise de Football + Fédération Camerounaise de Football Install via composer: ===================== From f707da221208edcf2a472facbbae3a1d23f5ff47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 23 Sep 2014 21:01:33 -0300 Subject: [PATCH 12/42] Attempt to fix Euro sign and other Win1252 chars --- src/ForceUTF8/Encoding.php | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 811ae0b..b6197f9 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -29,9 +29,9 @@ */ /** - * @author "Sebastián Grignoli" + * @author "Sebastián Grignoli" * @package Encoding - * @version 1.2 + * @version 1.4 * @link https://github.com/neitanod/forceutf8 * @example https://github.com/neitanod/forceutf8 * @license Revised BSD @@ -148,7 +148,7 @@ class Encoding { static function toUTF8($text){ /** - * Function Encoding::toUTF8 + * Function \ForceUTF8\Encoding::toUTF8 * * This function leaves UTF8 characters alone, while converting almost all non-UTF8 to UTF8. * @@ -251,7 +251,7 @@ static function toWin1252($text) { } return $text; } elseif(is_string($text)) { - return utf8_decode(str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), self::toUTF8($text))); + return static::utf8_decode($text); } else { return $text; } @@ -276,9 +276,9 @@ static function fixUTF8($text){ $last = ""; while($last <> $text){ $last = $text; - $text = self::toUTF8(utf8_decode(str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), $text))); + $text = self::toUTF8(static::utf8_decode($text)); } - $text = self::toUTF8(utf8_decode(str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), $text))); + $text = self::toUTF8(static::utf8_decode($text)); return $text; } @@ -327,4 +327,12 @@ public static function encode($encodingLabel, $text) if($encodingLabel == 'ISO-8859-1') return Encoding::toLatin1($text); } + protected static function utf8_decode($text) + { + // $o = utf8_decode( + // str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), self::toUTF8($text)) + // ); + $o = iconv("UTF-8", "Windows-1252//TRANSLIT", $text); + return $o; + } } From 42703773fbc7e6e61db7751f96ff78b97dd9641f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 24 Sep 2014 11:49:38 -0300 Subject: [PATCH 13/42] Minor fix to README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index bade661..11cd15a 100644 --- a/README.md +++ b/README.md @@ -54,5 +54,4 @@ Edit your composer.json file to include the following: } } ``` -======= ->>>>>>> Stashed changes + From 28d50d579179abac1f6a55b03c6d9d3f6573867c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 24 Sep 2014 11:59:43 -0300 Subject: [PATCH 14/42] Minor fix to README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index bade661..11cd15a 100644 --- a/README.md +++ b/README.md @@ -54,5 +54,4 @@ Edit your composer.json file to include the following: } } ``` -======= ->>>>>>> Stashed changes + From 00e19a44f6f674152c4ef35cb3995c3bbcceb5d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 24 Sep 2014 12:26:05 -0300 Subject: [PATCH 15/42] Version 2: new dependencies (iconv) --- src/ForceUTF8/Encoding.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index b6197f9..cf2f767 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -31,7 +31,7 @@ /** * @author "Sebastián Grignoli" * @package Encoding - * @version 1.4 + * @version 2.0 * @link https://github.com/neitanod/forceutf8 * @example https://github.com/neitanod/forceutf8 * @license Revised BSD From 9bef82817d8de3c284b7d76489cf5990b47b089d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 8 Oct 2014 12:13:25 -0300 Subject: [PATCH 16/42] Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 11cd15a..d081dc2 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Edit your composer.json file to include the following: ```json { "require": { - "neitanod/forceutf8": "dev-master" + "neitanod/forceutf8": "1.*" } } ``` From a86eab3f13f14b2c4a8b2ac758b441db434f4b5a Mon Sep 17 00:00:00 2001 From: Joao Gilberto Magalhaes Date: Sat, 11 Oct 2014 22:36:44 -0300 Subject: [PATCH 17/42] Added a parameter in fixUTF8 method for the user choose if use iconv for conversion or dont --- src/ForceUTF8/Encoding.php | 73 +++++++++++++++++++++----------------- 1 file changed, 40 insertions(+), 33 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index cf2f767..1860c46 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -40,7 +40,11 @@ namespace ForceUTF8; class Encoding { - + + const ICONV_TRANSLIT = "TRANSLIT"; + const ICONV_IGNORE = "IGNORE"; + const WITHOUT_ICONV = ""; + protected static $win1252ToUtf8 = array( 128 => "\xe2\x82\xac", @@ -75,10 +79,10 @@ class Encoding { 158 => "\xc5\xbe", 159 => "\xc5\xb8" ); - + protected static $brokenUtf8ToUtf8 = array( "\xc2\x80" => "\xe2\x82\xac", - + "\xc2\x82" => "\xe2\x80\x9a", "\xc2\x83" => "\xc6\x92", "\xc2\x84" => "\xe2\x80\x9e", @@ -90,10 +94,10 @@ class Encoding { "\xc2\x8a" => "\xc5\xa0", "\xc2\x8b" => "\xe2\x80\xb9", "\xc2\x8c" => "\xc5\x92", - + "\xc2\x8e" => "\xc5\xbd", - - + + "\xc2\x91" => "\xe2\x80\x98", "\xc2\x92" => "\xe2\x80\x99", "\xc2\x93" => "\xe2\x80\x9c", @@ -106,14 +110,14 @@ class Encoding { "\xc2\x9a" => "\xc5\xa1", "\xc2\x9b" => "\xe2\x80\xba", "\xc2\x9c" => "\xc5\x93", - + "\xc2\x9e" => "\xc5\xbe", "\xc2\x9f" => "\xc5\xb8" ); - + protected static $utf8ToWin1252 = array( "\xe2\x82\xac" => "\x80", - + "\xe2\x80\x9a" => "\x82", "\xc6\x92" => "\x83", "\xe2\x80\x9e" => "\x84", @@ -125,10 +129,10 @@ class Encoding { "\xc5\xa0" => "\x8a", "\xe2\x80\xb9" => "\x8b", "\xc5\x92" => "\x8c", - + "\xc5\xbd" => "\x8e", - - + + "\xe2\x80\x98" => "\x91", "\xe2\x80\x99" => "\x92", "\xe2\x80\x9c" => "\x93", @@ -141,7 +145,7 @@ class Encoding { "\xc5\xa1" => "\x9a", "\xe2\x80\xba" => "\x9b", "\xc5\x93" => "\x9c", - + "\xc5\xbe" => "\x9e", "\xc5\xb8" => "\x9f" ); @@ -151,7 +155,7 @@ static function toUTF8($text){ * Function \ForceUTF8\Encoding::toUTF8 * * This function leaves UTF8 characters alone, while converting almost all non-UTF8 to UTF8. - * + * * It assumes that the encoding of the original string is either Windows-1252 or ISO 8859-1. * * It may fail to convert characters to UTF-8 if they fall into one of these scenarios: @@ -160,7 +164,7 @@ static function toUTF8($text){ * are followed by any of these: ("group B") * ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶•¸¹º»¼½¾¿ * For example: %ABREPRESENT%C9%BB. «REPRESENTÉ» - * The "«" (%AB) character will be converted, but the "É" followed by "»" (%C9%BB) + * The "«" (%AB) character will be converted, but the "É" followed by "»" (%C9%BB) * is also a valid unicode character, and will be left unchanged. * * 2) when any of these: àáâãäåæçèéêëìíîï are followed by TWO chars from group B, @@ -180,13 +184,13 @@ static function toUTF8($text){ } return $text; } elseif(is_string($text)) { - + if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { $max = mb_strlen($text,'8bit'); } else { $max = strlen($text); } - + $buf = ""; for($i = 0; $i < $max; $i++){ $c1 = $text{$i}; @@ -265,10 +269,10 @@ static function toLatin1($text) { return self::toWin1252($text); } - static function fixUTF8($text){ + static function fixUTF8($text, $option = self::WITHOUT_ICONV){ if(is_array($text)) { foreach($text as $k => $v) { - $text[$k] = self::fixUTF8($v); + $text[$k] = self::fixUTF8($v, $option); } return $text; } @@ -276,27 +280,27 @@ static function fixUTF8($text){ $last = ""; while($last <> $text){ $last = $text; - $text = self::toUTF8(static::utf8_decode($text)); + $text = self::toUTF8(static::utf8_decode($text, $option)); } - $text = self::toUTF8(static::utf8_decode($text)); + $text = self::toUTF8(static::utf8_decode($text, $option)); return $text; } - + static function UTF8FixWin1252Chars($text){ - // If you received an UTF-8 string that was converted from Windows-1252 as it was ISO8859-1 + // If you received an UTF-8 string that was converted from Windows-1252 as it was ISO8859-1 // (ignoring Windows-1252 chars from 80 to 9F) use this function to fix it. // See: http://en.wikipedia.org/wiki/Windows-1252 - + return str_replace(array_keys(self::$brokenUtf8ToUtf8), array_values(self::$brokenUtf8ToUtf8), $text); } - + static function removeBOM($str=""){ if(substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) { $str=substr($str, 3); } return $str; } - + public static function normalizeEncoding($encodingLabel) { $encoding = strtoupper($encodingLabel); @@ -312,11 +316,11 @@ public static function normalizeEncoding($encodingLabel) 'WIN1252' => 'ISO-8859-1', 'WINDOWS1252' => 'ISO-8859-1' ); - + if(empty($equivalences[$encoding])){ return 'UTF-8'; } - + return $equivalences[$encoding]; } @@ -327,12 +331,15 @@ public static function encode($encodingLabel, $text) if($encodingLabel == 'ISO-8859-1') return Encoding::toLatin1($text); } - protected static function utf8_decode($text) + protected static function utf8_decode($text, $option) { - // $o = utf8_decode( - // str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), self::toUTF8($text)) - // ); - $o = iconv("UTF-8", "Windows-1252//TRANSLIT", $text); + if ($option == self::WITHOUT_ICONV || !function_exists('iconv')) { + $o = utf8_decode( + str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), self::toUTF8($text)) + ); + } else { + $o = iconv("UTF-8", "Windows-1252" . ($option == self::ICONV_TRANSLIT ? '//TRANSLIT' : ($option == self::ICONV_IGNORE ? '//IGNORE' : '')), $text); + } return $o; } } From fc5fdc9fb66aa1a294bc775b7732a8b268ac9368 Mon Sep 17 00:00:00 2001 From: Joao Gilberto Magalhaes Date: Fri, 17 Oct 2014 14:11:47 -0300 Subject: [PATCH 18/42] Added missing parameter --- src/ForceUTF8/Encoding.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 1860c46..a7686f5 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -248,14 +248,14 @@ static function toUTF8($text){ } } - static function toWin1252($text) { + static function toWin1252($text, $option = self::WITHOUT_ICONV) { if(is_array($text)) { foreach($text as $k => $v) { - $text[$k] = self::toWin1252($v); + $text[$k] = self::toWin1252($v, $option); } return $text; } elseif(is_string($text)) { - return static::utf8_decode($text); + return static::utf8_decode($text, $option); } else { return $text; } From f300c0ce372ea3601d6d3d0e08a3baaf0b3e8cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 15:32:42 -0300 Subject: [PATCH 19/42] Added some simple tests --- test/ForceUTF8Test.php | 88 ++++++++++++++++++++++++++++++++++++++++ test/Test.class.php | 63 ++++++++++++++++++++++++++++ test/data/test1.txt | 1 + test/data/test1Latin.txt | 1 + 4 files changed, 153 insertions(+) create mode 100644 test/ForceUTF8Test.php create mode 100644 test/Test.class.php create mode 100644 test/data/test1.txt create mode 100644 test/data/test1Latin.txt diff --git a/test/ForceUTF8Test.php b/test/ForceUTF8Test.php new file mode 100644 index 0000000..9ebebae --- /dev/null +++ b/test/ForceUTF8Test.php @@ -0,0 +1,88 @@ + FAILED\n"; + static::$failed++; + } + + private static function passed($test_name){ + static::character("."); + static::$passed++; + } + + private static function character($char){ + echo $char; + static::$last_echoed = 'char'; + } + + private static function line($msg){ + if(static::$last_echoed == 'char') echo "\n"; + echo $msg."\n"; + static::$last_echoed = 'line'; + } + } + diff --git a/test/data/test1.txt b/test/data/test1.txt new file mode 100644 index 0000000..771829e --- /dev/null +++ b/test/data/test1.txt @@ -0,0 +1 @@ +Hírek diff --git a/test/data/test1Latin.txt b/test/data/test1Latin.txt new file mode 100644 index 0000000..0aa69d6 --- /dev/null +++ b/test/data/test1Latin.txt @@ -0,0 +1 @@ +Hrek From dc58242858eebffb383212e3f880d2a0986818f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 15:34:36 -0300 Subject: [PATCH 20/42] Revert "Readme" This reverts commit 9bef82817d8de3c284b7d76489cf5990b47b089d. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d081dc2..11cd15a 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Edit your composer.json file to include the following: ```json { "require": { - "neitanod/forceutf8": "1.*" + "neitanod/forceutf8": "dev-master" } } ``` From f303dc8217101bf78ae807157ceec9fdf634d3e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 15:37:28 -0300 Subject: [PATCH 21/42] Removed unnecessary elseif --- src/ForceUTF8/Encoding.php | 121 +++++++++++++++++++------------------ 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 811ae0b..e63bdcc 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -179,69 +179,70 @@ static function toUTF8($text){ $text[$k] = self::toUTF8($v); } return $text; - } elseif(is_string($text)) { - - if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { - $max = mb_strlen($text,'8bit'); - } else { - $max = strlen($text); - } + } - $buf = ""; - for($i = 0; $i < $max; $i++){ - $c1 = $text{$i}; - if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already - $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; - $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; - $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; - if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2; - $i++; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } elseif($c1 >= "\xe0" & $c1 <= "\xef"){ //looks like 3 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2 . $c3; - $i = $i + 2; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } elseif($c1 >= "\xf0" & $c1 <= "\xf7"){ //looks like 4 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2 . $c3 . $c4; - $i = $i + 3; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } else { //doesn't look like UTF8, but should be converted - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = (($c1 & "\x3f") | "\x80"); - $buf .= $cc1 . $cc2; - } - } elseif(($c1 & "\xc0") == "\x80"){ // needs conversion - if(isset(self::$win1252ToUtf8[ord($c1)])) { //found in Windows-1252 special cases - $buf .= self::$win1252ToUtf8[ord($c1)]; - } else { - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = (($c1 & "\x3f") | "\x80"); - $buf .= $cc1 . $cc2; - } - } else { // it doesn't need conversion - $buf .= $c1; - } - } - return $buf; - } else { + if(!is_string($text)) { return $text; } + + if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { + $max = mb_strlen($text,'8bit'); + } else { + $max = strlen($text); + } + + $buf = ""; + for($i = 0; $i < $max; $i++){ + $c1 = $text{$i}; + if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already + $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; + $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; + $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; + if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2; + $i++; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } elseif($c1 >= "\xe0" & $c1 <= "\xef"){ //looks like 3 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2 . $c3; + $i = $i + 2; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } elseif($c1 >= "\xf0" & $c1 <= "\xf7"){ //looks like 4 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2 . $c3 . $c4; + $i = $i + 3; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } else { //doesn't look like UTF8, but should be converted + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = (($c1 & "\x3f") | "\x80"); + $buf .= $cc1 . $cc2; + } + } elseif(($c1 & "\xc0") == "\x80"){ // needs conversion + if(isset(self::$win1252ToUtf8[ord($c1)])) { //found in Windows-1252 special cases + $buf .= self::$win1252ToUtf8[ord($c1)]; + } else { + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = (($c1 & "\x3f") | "\x80"); + $buf .= $cc1 . $cc2; + } + } else { // it doesn't need conversion + $buf .= $c1; + } + } + return $buf; } static function toWin1252($text) { From 9e0b9d11803cbc351a14e28a5bb972c8ce4c6526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 15:49:31 -0300 Subject: [PATCH 22/42] Removed unnecessary elseif --- src/ForceUTF8/Encoding.php | 123 +++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 61 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index a7686f5..73cf371 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -183,69 +183,70 @@ static function toUTF8($text){ $text[$k] = self::toUTF8($v); } return $text; - } elseif(is_string($text)) { - - if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { - $max = mb_strlen($text,'8bit'); - } else { - $max = strlen($text); - } - - $buf = ""; - for($i = 0; $i < $max; $i++){ - $c1 = $text{$i}; - if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already - $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; - $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; - $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; - if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2; - $i++; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } elseif($c1 >= "\xe0" & $c1 <= "\xef"){ //looks like 3 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2 . $c3; - $i = $i + 2; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } elseif($c1 >= "\xf0" & $c1 <= "\xf7"){ //looks like 4 bytes UTF8 - if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf"){ //yeah, almost sure it's UTF8 already - $buf .= $c1 . $c2 . $c3 . $c4; - $i = $i + 3; - } else { //not valid UTF8. Convert it. - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = ($c1 & "\x3f") | "\x80"; - $buf .= $cc1 . $cc2; - } - } else { //doesn't look like UTF8, but should be converted - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = (($c1 & "\x3f") | "\x80"); - $buf .= $cc1 . $cc2; - } - } elseif(($c1 & "\xc0") == "\x80"){ // needs conversion - if(isset(self::$win1252ToUtf8[ord($c1)])) { //found in Windows-1252 special cases - $buf .= self::$win1252ToUtf8[ord($c1)]; - } else { - $cc1 = (chr(ord($c1) / 64) | "\xc0"); - $cc2 = (($c1 & "\x3f") | "\x80"); - $buf .= $cc1 . $cc2; - } - } else { // it doesn't need conversion - $buf .= $c1; - } - } - return $buf; - } else { + } + + if(!is_string($text)) { return $text; } + + if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { + $max = mb_strlen($text,'8bit'); + } else { + $max = strlen($text); + } + + $buf = ""; + for($i = 0; $i < $max; $i++){ + $c1 = $text{$i}; + if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already + $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; + $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; + $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; + if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2; + $i++; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } elseif($c1 >= "\xe0" & $c1 <= "\xef"){ //looks like 3 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2 . $c3; + $i = $i + 2; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } elseif($c1 >= "\xf0" & $c1 <= "\xf7"){ //looks like 4 bytes UTF8 + if($c2 >= "\x80" && $c2 <= "\xbf" && $c3 >= "\x80" && $c3 <= "\xbf" && $c4 >= "\x80" && $c4 <= "\xbf"){ //yeah, almost sure it's UTF8 already + $buf .= $c1 . $c2 . $c3 . $c4; + $i = $i + 3; + } else { //not valid UTF8. Convert it. + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = ($c1 & "\x3f") | "\x80"; + $buf .= $cc1 . $cc2; + } + } else { //doesn't look like UTF8, but should be converted + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = (($c1 & "\x3f") | "\x80"); + $buf .= $cc1 . $cc2; + } + } elseif(($c1 & "\xc0") == "\x80"){ // needs conversion + if(isset(self::$win1252ToUtf8[ord($c1)])) { //found in Windows-1252 special cases + $buf .= self::$win1252ToUtf8[ord($c1)]; + } else { + $cc1 = (chr(ord($c1) / 64) | "\xc0"); + $cc2 = (($c1 & "\x3f") | "\x80"); + $buf .= $cc1 . $cc2; + } + } else { // it doesn't need conversion + $buf .= $c1; + } + } + return $buf; } static function toWin1252($text, $option = self::WITHOUT_ICONV) { From 4a41012e37c206d633e5176865dbf2c32e8aa4fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 15:53:55 -0300 Subject: [PATCH 23/42] A little refactoring --- src/ForceUTF8/Encoding.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index e63bdcc..2b27e2d 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -185,11 +185,7 @@ static function toUTF8($text){ return $text; } - if ( function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) { - $max = mb_strlen($text,'8bit'); - } else { - $max = strlen($text); - } + $max = self::strlen($text); $buf = ""; for($i = 0; $i < $max; $i++){ @@ -297,7 +293,12 @@ static function removeBOM($str=""){ } return $str; } - + + static function strlen($text){ + return (function_exists('mb_strlen') && ((int) ini_get('mbstring.func_overload')) & 2) ? + mb_strlen($text,'8bit') : strlen($text); + } + public static function normalizeEncoding($encodingLabel) { $encoding = strtoupper($encodingLabel); From 6b59b30e67a5201162bfe99fe5ddfebf844845dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 16:01:15 -0300 Subject: [PATCH 24/42] Changes on README --- README.md | 18 +++++++++++------- test/ForceUTF8Test.php | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d081dc2..5ac5047 100644 --- a/README.md +++ b/README.md @@ -21,20 +21,24 @@ I've included another function, \ForceUTF8\Encoding::fixUTF8(), which will fix t Usage: ====== - $utf8_string = \ForceUTF8\Encoding::toUTF8($utf8_or_latin1_or_mixed_string); + use \ForceUTF8\Encoding; - $latin1_string = \ForceUTF8\Encoding::toLatin1($utf8_or_latin1_or_mixed_string); + $utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string); + + $latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string); also: - $utf8_string = \ForceUTF8\Encoding::fixUTF8($garbled_utf8_string); + $utf8_string = Encoding::fixUTF8($garbled_utf8_string); Examples: - echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); - echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); - echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); - echo \ForceUTF8\Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + use \ForceUTF8\Encoding; + + echo Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo Encoding::fixUTF8("Fédération Camerounaise de Football\n"); + echo Encoding::fixUTF8("Fédération Camerounaise de Football\n"); will output: diff --git a/test/ForceUTF8Test.php b/test/ForceUTF8Test.php index 9ebebae..2aa1543 100644 --- a/test/ForceUTF8Test.php +++ b/test/ForceUTF8Test.php @@ -2,7 +2,7 @@ require_once(dirname(__FILE__)."/Test.class.php"); require_once(dirname(dirname(__FILE__))."/src/ForceUTF8/Encoding.php"); -use ForceUTF8\Encoding; +use \ForceUTF8\Encoding; // Test the testing class itself. Test::is("'yes' is true", 'yes', true); From 1283466e2412ac4595c13cc78e2ca944899825a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 2 Dec 2014 16:10:23 -0300 Subject: [PATCH 25/42] Some more tests --- test/ForceUTF8Test.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/ForceUTF8Test.php b/test/ForceUTF8Test.php index 2aa1543..a1a9bd9 100644 --- a/test/ForceUTF8Test.php +++ b/test/ForceUTF8Test.php @@ -85,4 +85,17 @@ function test_double_encoded_arrays_fix(){ Test::true("Source arrays are different (fixUTF8).", test_double_encoded_arrays_are_different()); Test::true("Fixing of double encoded array works.", test_double_encoded_arrays_fix()); +Test::identical("fixUTF8() Example 1 still working.", + Encoding::fixUTF8("Fédération Camerounaise de Football\n"), + "Fédération Camerounaise de Football\n"); +Test::identical("fixUTF8() Example 2 still working.", + Encoding::fixUTF8("Fédération Camerounaise de Football\n"), + "Fédération Camerounaise de Football\n"); +Test::identical("fixUTF8() Example 3 still working.", + Encoding::fixUTF8("Fédération Camerounaise de Football\n"), + "Fédération Camerounaise de Football\n"); +Test::identical("fixUTF8() Example 4 still working.", + Encoding::fixUTF8("Fédération Camerounaise de Football\n"), + "Fédération Camerounaise de Football\n"); + Test::totals(); From 1b577b9430cb7bd20d8dd7435f36120b85880ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Fri, 2 Jan 2015 10:36:36 -0300 Subject: [PATCH 26/42] Fix in composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 7924dfa..aff71af 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "type": "library", "description": "PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings.", "require": { - "php": ">=5.2.0" + "php": ">=5.3.0" }, "authors": [ { From ee5e51661d94d8df7614ac096ffd1b03816f1aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 8 Jan 2015 11:26:56 -0300 Subject: [PATCH 27/42] Missing return statement --- src/ForceUTF8/Encoding.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 1827928..3b9a593 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -329,8 +329,8 @@ public static function normalizeEncoding($encodingLabel) public static function encode($encodingLabel, $text) { $encodingLabel = self::normalizeEncoding($encodingLabel); - if($encodingLabel == 'UTF-8') return Encoding::toUTF8($text); if($encodingLabel == 'ISO-8859-1') return Encoding::toLatin1($text); + return Encoding::toUTF8($text); } protected static function utf8_decode($text, $option) From 0fb6983af43fae715eff1bb0f3653fbabd984f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Tue, 10 Feb 2015 18:22:33 -0300 Subject: [PATCH 28/42] Minor adjustments --- test/ForceUTF8Test.php | 42 +++++++++++++++++++++--------------------- test/Test.class.php | 13 ++++++------- test/data/russian.txt | 1 + 3 files changed, 28 insertions(+), 28 deletions(-) create mode 100644 test/data/russian.txt diff --git a/test/ForceUTF8Test.php b/test/ForceUTF8Test.php index a1a9bd9..02ec687 100644 --- a/test/ForceUTF8Test.php +++ b/test/ForceUTF8Test.php @@ -1,4 +1,4 @@ - Date: Thu, 7 May 2015 15:47:36 +0200 Subject: [PATCH 29/42] changed calling from concrete class name to self --- src/ForceUTF8/Encoding.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 3b9a593..6530576 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -329,8 +329,8 @@ public static function normalizeEncoding($encodingLabel) public static function encode($encodingLabel, $text) { $encodingLabel = self::normalizeEncoding($encodingLabel); - if($encodingLabel == 'ISO-8859-1') return Encoding::toLatin1($text); - return Encoding::toUTF8($text); + if($encodingLabel == 'ISO-8859-1') return self::toLatin1($text); + return self::toUTF8($text); } protected static function utf8_decode($text, $option) From bd2ac454cf5af3d967b7105ab83321a34b88c421 Mon Sep 17 00:00:00 2001 From: Jeremy Benoist Date: Tue, 16 Feb 2016 16:11:06 +0100 Subject: [PATCH 30/42] Add License to composer composer validate --strict > No license specified, it is recommended to do so. --- composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/composer.json b/composer.json index aff71af..3584731 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,7 @@ { "name": "neitanod/forceutf8", "homepage": "https://github.com/neitanod/forceutf8", + "license": "BSD-3-Clause", "type": "library", "description": "PHP Class Encoding featuring popular Encoding::toUTF8() function --formerly known as forceUTF8()-- that fixes mixed encoded strings.", "require": { From 47c883ab2739e7938a8bb0bfd1c29d48c88858de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Mon, 22 May 2017 15:50:57 -0300 Subject: [PATCH 31/42] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d2131c3..765c637 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ Edit your composer.json file to include the following: ```json { "require": { - "neitanod/forceutf8": "dev-master" + "neitanod/forceutf8": "~2.0" } } ``` From 0e8f0e5f55091c182e93ef6987726f19a0c4bb84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 21 Sep 2017 17:48:18 -0300 Subject: [PATCH 32/42] Tip jar --- README.md | 4 ++++ resources/wallet.jpg | Bin 0 -> 77210 bytes 2 files changed, 4 insertions(+) create mode 100644 resources/wallet.jpg diff --git a/README.md b/README.md index 765c637..faf5700 100644 --- a/README.md +++ b/README.md @@ -59,3 +59,7 @@ Edit your composer.json file to include the following: } ``` +Tips: +===== +You can tip me with Bitcoin if you want. :) +![1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP](resources/wallet.jpg "1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP") diff --git a/resources/wallet.jpg b/resources/wallet.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fc2e849d863f7286a07acce31519946b983fd0cc GIT binary patch literal 77210 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 literal 0 HcmV?d00001 From d0f9222dc03dfefc4233878d881f7d10c3318e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 21 Sep 2017 17:52:31 -0300 Subject: [PATCH 33/42] smaller file --- resources/wallet.jpg | Bin 77210 -> 45140 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/wallet.jpg b/resources/wallet.jpg index fc2e849d863f7286a07acce31519946b983fd0cc..ba15cbef49f3261c97a1c395a09d58b2b7bce632 100644 GIT binary patch literal 45140 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 MLc$JS{QdF&0Q;%{Q2+n{ literal 77210 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 From 919f0689c126d4bc01efa0dd9245478be167ebe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 21 Sep 2017 17:59:10 -0300 Subject: [PATCH 34/42] size property on img --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index faf5700..a8ad7d9 100644 --- a/README.md +++ b/README.md @@ -62,4 +62,4 @@ Edit your composer.json file to include the following: Tips: ===== You can tip me with Bitcoin if you want. :) -![1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP](resources/wallet.jpg "1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP") +1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP From e1f383c7b5331b575c41c6e936e321095017cd35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Thu, 21 Sep 2017 18:00:15 -0300 Subject: [PATCH 35/42] img size --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a8ad7d9..0e28d37 100644 --- a/README.md +++ b/README.md @@ -62,4 +62,5 @@ Edit your composer.json file to include the following: Tips: ===== You can tip me with Bitcoin if you want. :) -1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP + +1Awfu4TZpy99H7Pyzt1mooxU1aP2mJVdHP From 16f98614edf9ff4be128e371179a343d1b8a0408 Mon Sep 17 00:00:00 2001 From: Mikhail Marynich Date: Mon, 13 Aug 2018 11:11:41 +0200 Subject: [PATCH 36/42] Fix fixUTF8 cast --- src/ForceUTF8/Encoding.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 6530576..91e5249 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -274,6 +274,10 @@ static function fixUTF8($text, $option = self::WITHOUT_ICONV){ return $text; } + if(!is_string($text)) { + return $text; + } + $last = ""; while($last <> $text){ $last = $text; From e13b3f18df123ff76997cb40f691edbf0ed0bc5d Mon Sep 17 00:00:00 2001 From: Hugo Pakula Date: Wed, 10 Oct 2018 17:00:32 -0500 Subject: [PATCH 37/42] Add documentation for encoding options --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 0e28d37..4a4f96a 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,27 @@ will output: Fédération Camerounaise de Football Fédération Camerounaise de Football Fédération Camerounaise de Football + +Options: +======== +By default, `Encoding::fixUTF8` will use the `Encoding::WITHOUT_ICONV` flag, signalling that iconv should not be used to fix garbled UTF8 strings. + +This class also provides options for iconv processing, such as `Encoding::ICONV_TRANSLIT` and `Encoding::ICONV_IGNORE` to enable these flags when the iconv class is utilized. The functionality of such flags are documented in the [PHP iconv documentation](http://php.net/manual/en/function.iconv.php). + +Examples: + + use \ForceUTF8\Encoding; + + $str = "Fédération Camerounaise—de—Football\n"; // Uses U+2014 which is invalid + echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); + echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); + echo Encoding::fixUTF8($str); + +will output: + + Fédération Camerounaise?de?Football + Fédération Camerounaise—de—Football + Fédération Camerounaise—de—Football Install via composer: ===================== From c590ec876b7b9481d8eeefebdc5f227bba16635c Mon Sep 17 00:00:00 2001 From: Hugo Pakula Date: Wed, 10 Oct 2018 17:05:23 -0500 Subject: [PATCH 38/42] Fix output order --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a4f96a..caba0c4 100644 --- a/README.md +++ b/README.md @@ -58,9 +58,9 @@ Examples: use \ForceUTF8\Encoding; $str = "Fédération Camerounaise—de—Football\n"; // Uses U+2014 which is invalid + echo Encoding::fixUTF8($str); // Breaks invalid char (U+2014) echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); - echo Encoding::fixUTF8($str); will output: From abf5082b591806955adc4bf525e7f8c52daac95b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 10 Oct 2018 19:10:18 -0300 Subject: [PATCH 39/42] Allow flags for toISO8859(), toLatin1() and a default for utf8_decode() --- src/ForceUTF8/Encoding.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 91e5249..7801ebc 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -183,14 +183,14 @@ static function toUTF8($text){ $text[$k] = self::toUTF8($v); } return $text; - } - + } + if(!is_string($text)) { return $text; } - + $max = self::strlen($text); - + $buf = ""; for($i = 0; $i < $max; $i++){ $c1 = $text{$i}; @@ -258,12 +258,12 @@ static function toWin1252($text, $option = self::WITHOUT_ICONV) { } } - static function toISO8859($text) { - return self::toWin1252($text); + static function toISO8859($text, $option = self::WITHOUT_ICONV) { + return self::toWin1252($text, $option); } - static function toLatin1($text) { - return self::toWin1252($text); + static function toLatin1($text, $option = self::WITHOUT_ICONV) { + return self::toWin1252($text, $option); } static function fixUTF8($text, $option = self::WITHOUT_ICONV){ @@ -337,7 +337,7 @@ public static function encode($encodingLabel, $text) return self::toUTF8($text); } - protected static function utf8_decode($text, $option) + protected static function utf8_decode($text, $option = self::WITHOUT_ICONV) { if ($option == self::WITHOUT_ICONV || !function_exists('iconv')) { $o = utf8_decode( From 30980a8ca2787a7730d370eac310b8987eb68229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Grignoli?= Date: Wed, 10 Oct 2018 20:03:52 -0300 Subject: [PATCH 40/42] Examples in documentation --- README.md | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index caba0c4..38a1a8a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ If you apply the PHP function utf8_encode() to an already-UTF8 string it will re This class addresses this issue and provides a handy static function called \ForceUTF8\Encoding::toUTF8(). -You don't need to know what the encoding of your strings is. It can be Latin1 (iso 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. \ForceUTF8\Encoding::toUTF8() will convert everything to UTF8. +You don't need to know what the encoding of your strings is. It can be Latin1 (ISO 8859-1), Windows-1252 or UTF8, or the string can have a mix of them. \ForceUTF8\Encoding::toUTF8() will convert everything to UTF8. Sometimes you have to deal with services that are unreliable in terms of encoding, possibly mixing UTF8 and Latin1 in the same string. @@ -57,17 +57,33 @@ Examples: use \ForceUTF8\Encoding; - $str = "Fédération Camerounaise—de—Football\n"; // Uses U+2014 which is invalid - echo Encoding::fixUTF8($str); // Breaks invalid char (U+2014) - echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); - echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); - + $str = "Fédération Camerounaise—de—Football\n"; // Uses U+2014 which is invalid ISO8859-1 but exists in Win1252 + echo Encoding::fixUTF8($str); // Will break U+2014 + echo Encoding::fixUTF8($str, Encoding::ICONV_IGNORE); // Will preserve U+2014 + echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); // Will preserve U+2014 + will output: Fédération Camerounaise?de?Football Fédération Camerounaise—de—Football Fédération Camerounaise—de—Football +while: + + use \ForceUTF8\Encoding; + + $str = "čęėįšųūž"; // Uses several characters not present in ISO8859-1 / Win1252 + echo Encoding::fixUTF8($str); // Will break invalid characters + echo Encoding::fixUTF8($str, Encoding::ICONV_IGNORE); // Will remove invalid characters, keep those present in Win1252 + echo Encoding::fixUTF8($str, Encoding::ICONV_TRANSLIT); // Will trasliterate invalid characters, keep those present in Win1252 + +will output: + + ???????? + šž + ceeišuuž + + Install via composer: ===================== Edit your composer.json file to include the following: From 77603c622537237df6d097349dacaa8fbee0c28e Mon Sep 17 00:00:00 2001 From: CodeLingoBot Date: Fri, 5 Apr 2019 16:59:18 +1300 Subject: [PATCH 41/42] Change PHP keywords to comply with PSR2 Signed-off-by: CodeLingoBot --- test/Test.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Test.class.php b/test/Test.class.php index 08c6249..511c565 100644 --- a/test/Test.class.php +++ b/test/Test.class.php @@ -5,7 +5,7 @@ class Test { protected static $last_echoed; public static function true($test_name, $result){ - return static::is($test_name, $result, TRUE); + return static::is($test_name, $result, true); } public static function is($test_name, $result, $expected){ From 4d1466ff0844b2421605a163048dbdd3a1f8b021 Mon Sep 17 00:00:00 2001 From: neoteknic Date: Wed, 4 Dec 2019 16:12:02 +0100 Subject: [PATCH 42/42] Fix PHP 7.4 Fix php 7.4 ( array{$x} warning (error on frameworks). --- src/ForceUTF8/Encoding.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ForceUTF8/Encoding.php b/src/ForceUTF8/Encoding.php index 7801ebc..2031592 100644 --- a/src/ForceUTF8/Encoding.php +++ b/src/ForceUTF8/Encoding.php @@ -193,11 +193,11 @@ static function toUTF8($text){ $buf = ""; for($i = 0; $i < $max; $i++){ - $c1 = $text{$i}; + $c1 = $text[$i]; if($c1>="\xc0"){ //Should be converted to UTF8, if it's not UTF8 already - $c2 = $i+1 >= $max? "\x00" : $text{$i+1}; - $c3 = $i+2 >= $max? "\x00" : $text{$i+2}; - $c4 = $i+3 >= $max? "\x00" : $text{$i+3}; + $c2 = $i+1 >= $max? "\x00" : $text[$i+1]; + $c3 = $i+2 >= $max? "\x00" : $text[$i+2]; + $c4 = $i+3 >= $max? "\x00" : $text[$i+3]; if($c1 >= "\xc0" & $c1 <= "\xdf"){ //looks like 2 bytes UTF8 if($c2 >= "\x80" && $c2 <= "\xbf"){ //yeah, almost sure it's UTF8 already $buf .= $c1 . $c2; @@ -230,7 +230,7 @@ static function toUTF8($text){ $cc2 = (($c1 & "\x3f") | "\x80"); $buf .= $cc1 . $cc2; } - } elseif(($c1 & "\xc0") == "\x80"){ // needs conversion + } elseif(($c1 & "\xc0") === "\x80"){ // needs conversion if(isset(self::$win1252ToUtf8[ord($c1)])) { //found in Windows-1252 special cases $buf .= self::$win1252ToUtf8[ord($c1)]; } else { @@ -296,7 +296,7 @@ static function UTF8FixWin1252Chars($text){ } static function removeBOM($str=""){ - if(substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) { + if(substr($str, 0,3) === pack("CCC",0xef,0xbb,0xbf)) { $str=substr($str, 3); } return $str; @@ -333,7 +333,7 @@ public static function normalizeEncoding($encodingLabel) public static function encode($encodingLabel, $text) { $encodingLabel = self::normalizeEncoding($encodingLabel); - if($encodingLabel == 'ISO-8859-1') return self::toLatin1($text); + if($encodingLabel === 'ISO-8859-1') return self::toLatin1($text); return self::toUTF8($text); } @@ -344,7 +344,7 @@ protected static function utf8_decode($text, $option = self::WITHOUT_ICONV) str_replace(array_keys(self::$utf8ToWin1252), array_values(self::$utf8ToWin1252), self::toUTF8($text)) ); } else { - $o = iconv("UTF-8", "Windows-1252" . ($option == self::ICONV_TRANSLIT ? '//TRANSLIT' : ($option == self::ICONV_IGNORE ? '//IGNORE' : '')), $text); + $o = iconv("UTF-8", "Windows-1252" . ($option === self::ICONV_TRANSLIT ? '//TRANSLIT' : ($option === self::ICONV_IGNORE ? '//IGNORE' : '')), $text); } return $o; }