diff options
| author | Christian Schneider | 2026-03-31 18:47:31 +0200 |
|---|---|---|
| committer | Christian Schneider | 2026-03-31 18:47:31 +0200 |
| commit | 074fbc730e77c2bfc913ca50e51045f958953e05 (patch) | |
| tree | 5ada8740737611b5669cd3b645cb5fc8ef39a915 /it.class | |
| parent | 7211d0baed1e77db85ab0c21062ddeeecac7caaf (diff) | |
| download | itools-074fbc730e77c2bfc913ca50e51045f958953e05.tar.gz itools-074fbc730e77c2bfc913ca50e51045f958953e05.tar.bz2 itools-074fbc730e77c2bfc913ca50e51045f958953e05.zip | |
Remove combining characters at beginning of string in it::any2utf8() (mail8281)
Diffstat (limited to 'it.class')
| -rw-r--r-- | it.class | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -610,6 +610,8 @@ static function any2utf8($value, $errprefix = "") list($value, $error) = array(preg_replace('/\xef\xb7[\x90-\xaf]|\xef\xbf[\xbe\xbf]/', " ", $value), "forbidden utf-8 character. input=$value"); $value = preg_replace('/\xc2\xad/', '', $value); # Kill invisible soft hyphens $value = normalizer_normalize($value, Normalizer::FORM_C); + if (preg_match('/^\pM/u', $value)) # Remove combining characters (e.g. U+0338 "Combining Long Solidus Overlay") at beginning of string + list($value, $error) = array(preg_replace('/^\pM+/u', "", $value), "combining character at beginning of string. input=$value"); if ($error && $errprefix) it::error(array('title' => "$errprefix: " . trim($error))); } |