Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/notifications.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2019-12-04 10:29:30 +0300
committerJoas Schilling <coding@schilljs.com>2019-12-04 10:32:59 +0300
commitae6a18c31d73cefd3eb68b6ca98a44432b391e02 (patch)
tree3d17f7f0770565951a7ce9eaaa7e3874a9bf5d07
parent9d2bdd3f4a8ef9b0807dfb444c76e7468501c8e4 (diff)
Fix cutting of multibyte characters
Signed-off-by: Joas Schilling <coding@schilljs.com>
-rw-r--r--lib/Push.php5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Push.php b/lib/Push.php
index bc25486..810a003 100644
--- a/lib/Push.php
+++ b/lib/Push.php
@@ -264,9 +264,10 @@ class Push {
// Max length of encryption is 255, so we need to shorten the subject to be shorter
$subject = $notification->getParsedSubject();
- $dataLength = 245 - strlen(json_encode($data));
+ // Half the length for multibyte characters like Russian, Chinese, Japanese, Emojis, …
+ $dataLength = floor((245 - strlen(json_encode($data))) / 2) - 1;
if (strlen($subject) > $dataLength) {
- $data['subject'] = substr($subject, 0, $dataLength) . '…';
+ $data['subject'] = mb_substr($subject, 0, $dataLength) . '…';
} else {
$data['subject'] = $subject;
}