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
committerBackportbot <backportbot-noreply@rullzer.com>2019-12-04 17:39:19 +0300
commitc1c0cd57456bd2b4fb7998af5e2b2e6394ef300f (patch)
tree446825db8956cf7fa43a49b47397b1a920803129
parentebe9d4aeb4dd10155162b00450374f12c6c6a6c5 (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 e5f3e31..f381d20 100644
--- a/lib/Push.php
+++ b/lib/Push.php
@@ -194,9 +194,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;
}