public function testUtf8ToAscii() { $this->assertEquals('Snoop Doggy Dog', Garp_Util_String::utf8ToAscii('Snoop Döggy Døg')); $this->assertEquals('Snoop Duggy Dog', Garp_Util_String::utf8ToAscii('Snøøp Düggy Døg')); $this->assertEquals('Zlutoucky kun', Garp_Util_String::utf8ToAscii('Žluťoučký kůň')); $this->assertEquals('Weiss, Gobel, Gothe, Gotz', Garp_Util_String::utf8ToAscii('Weiß, Göbel, Göthe, Götz')); $this->assertEquals('Abu Jafar al-Khazin', Garp_Util_String::utf8ToAscii('Abū Ja\'far al-Khāzin')); $this->assertEquals('In fiecare zi Dumnezeu ne saruta pe gura', Garp_Util_String::utf8ToAscii('În fiecare zi Dumnezeu ne sarută pe gură')); $this->assertEquals('oe', Garp_Util_String::utf8ToAscii(chr(156))); //testing the json output $this->assertTrue((bool) json_encode(Garp_Util_String::utf8ToAscii('Snoop Döggy Døg'))); $this->assertTrue((bool) json_encode(Garp_Util_String::utf8ToAscii('Snøøp Düggy Døg'))); $this->assertTrue((bool) json_encode(Garp_Util_String::utf8ToAscii('Žluťoučký kůň'))); $arrayToTest = array('something' => 'Weiß, Göbel, Göthe, Götz', 'weirdChar' => 'ॐ✡❀✿☃', 'diacritics' => 'ÁáÀàÂâǍǎĂăÃãẢảẠạÄäÅåĀāĄąẤấẦầẪẫẨẩẬậẮắẰằẴẵẲẳẶặǺǻĆćĈĉČčĊċÇçĎďĐđÐÉéÈèÊêĚěĔĕẼẽẺẻĖėËëĒēĘęẾếỀềỄễỂểẸẹỆệĞğĜĝĠġĢģĤĥĦħÍíÌìĬĭÎîǏǐÏïĨĩĮįĪīỈỉỊịĴĵĶķĹ弾ĻļŁłĿŀŃńŇňÑñŅņÓóÒòŎŏÔôỐốỒồỖỗỔổǑǒÖöŐőÕõØøǾǿŌōỎỏƠơỚớỜờỠỡỞởỢợỌọỘộṔṕṖṗŔŕŘřŖŗŚśŜŝŠšŞşŤťŢţŦŧÚúÙùŬŭÛûǓǔŮůÜüǗǘǛǜǙǚǕǖŰűŨũŲųŪūỦủƯưỨứỪừỮữỬửỰựỤụẂẃẀẁŴŵẄẅÝýỲỳŶŷŸÿỸỹỶỷỴỵŹźŽžŻż', 'czech' => 'Žluťoučký kůň'); $arrayAscii = array(); foreach ($arrayToTest as $key => $value) { $arrayAscii[$key] = Garp_Util_String::utf8ToAscii($value); } $json = json_encode($arrayAscii); $reverted = json_decode($json); $this->assertFalse(is_null($reverted->something)); $this->assertFalse(is_null($reverted->weirdChar)); $this->assertFalse(is_null($reverted->diacritics)); $this->assertFalse(is_null($reverted->czech)); }