From dbecdf209de88ed0910ba602d326d33b5aefed93 Mon Sep 17 00:00:00 2001 From: Antoine Descamps Date: Wed, 16 Nov 2016 18:54:57 +0100 Subject: [PATCH] [PHP] Use mb_detect_encoding when available (#3952) I've faced an issue where I want to serialize UTF-8 emojis and FlatBufferBuilder::is_utf8 would return false on them. I was not able to add the corresponding hexadecimal code because I don't understand how the whole thing works but what i've done is using the `mb_detect_encoding` function which handles correctly all supposed UTF-8 characters. --- php/FlatbufferBuilder.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/php/FlatbufferBuilder.php b/php/FlatbufferBuilder.php index 6f0ee4831..5c18bf46a 100644 --- a/php/FlatbufferBuilder.php +++ b/php/FlatbufferBuilder.php @@ -593,6 +593,10 @@ class FlatbufferBuilder protected function is_utf8($bytes) { + if (function_exists('mb_detect_encoding')) { + return (bool) mb_detect_encoding($bytes, 'UTF-8', true); + } + $len = strlen($bytes); if ($len < 1) { /* NOTE: always return 1 when passed string is null */