From 008ca712ffcd14f603362d9fbfab2cb8501d5473 Mon Sep 17 00:00:00 2001 From: mahdahar <89adham@gmail.com> Date: Sun, 15 Mar 2026 13:50:09 +0700 Subject: [PATCH] fix: normalize telephone data for JSON --- app/Controllers/RequestsController.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/app/Controllers/RequestsController.php b/app/Controllers/RequestsController.php index 2585218..f8aaa51 100644 --- a/app/Controllers/RequestsController.php +++ b/app/Controllers/RequestsController.php @@ -33,6 +33,7 @@ class RequestsController extends BaseController $row['COLLECTIONDATE'] = date('Y-m-d H:i', strtotime($row['COLLECTIONDATE'])); $row['ODR_DDATE'] = date('Y-m-d H:i', strtotime($row['ODR_DDATE'])); $row['REQDATE'] = date('Y-m-d H:i', strtotime($row['REQDATE'])); + $this->normalizeTelephoneFields($row); } $data['data'] = $rows; return $this->response->setJSON($data); @@ -135,6 +136,28 @@ class RequestsController extends BaseController return $this->response->setJSON($data); } + private function normalizeTelephoneFields(array &$row): void + { + foreach (['TELEPHON', 'TELEPHONE'] as $field) { + if (isset($row[$field]) && is_string($row[$field])) { + $row[$field] = $this->ensureUtf8($row[$field]); + } + } + } + + private function ensureUtf8(string $value): string + { + if (mb_check_encoding($value, 'UTF-8')) { + return $value; + } + + $encoding = mb_detect_encoding($value, ['UTF-8', 'CP1252', 'ISO-8859-1'], true); + + return $encoding + ? mb_convert_encoding($value, 'UTF-8', $encoding) + : mb_convert_encoding($value, 'UTF-8', 'CP1252'); + } + public function setEngLanguage($accessnumber) { $userid = session('userid');