1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 16:22:43 +01:00

Use phutil_utf8_convert() in Phabricator

Summary: See D3252.

Test Plan: This one is nasty to test, I'm going to make some coffee first.

Reviewers: davidreuss, vrana, btrahan

Reviewed By: davidreuss

CC: aran

Maniphest Tasks: T452

Differential Revision: https://secure.phabricator.com/D3254
This commit is contained in:
epriestley 2012-08-12 08:50:19 -07:00
parent a8a4e85443
commit 3e29921f5e
3 changed files with 8 additions and 16 deletions

View file

@ -34,9 +34,10 @@ $text_body_headers = $parser->getMessageBodyHeaders('text');
$content_type = idx($text_body_headers, 'content-type');
if (
!phutil_is_utf8($text_body) &&
preg_match('/charset="(.*?)"/', $content_type, $matches)
(preg_match('/charset="(.*?)"/', $content_type, $matches) ||
preg_match('/charset=(\S+)/', $content_type, $matches))
) {
$text_body = mb_convert_encoding($text_body, "UTF-8", $matches[1]);
$text_body = phutil_utf8_convert($text_body, "UTF-8", $matches[1]);
}
$headers = $parser->getHeaders();

View file

@ -318,7 +318,7 @@ final class PhabricatorRepositoryCommitHeraldWorker
return;
}
$encoding = $repository->getDetail('encoding', 'utf-8');
$encoding = $repository->getDetail('encoding', 'UTF-8');
$result = null;
$patch_error = null;
@ -347,9 +347,8 @@ final class PhabricatorRepositoryCommitHeraldWorker
if ($len <= $inline_patches) {
// We send email as utf8, so we need to convert the text to utf8 if
// we can.
if (strtolower($encoding) != 'utf-8' &&
function_exists('mb_convert_encoding')) {
$raw_patch = mb_convert_encoding($raw_patch, 'utf-8', $encoding);
if ($encoding) {
$raw_patch = phutil_utf8_convert($raw_patch, 'UTF-8', $encoding);
}
$result = phutil_utf8ize($raw_patch);
}

View file

@ -37,17 +37,9 @@ final class PhabricatorRepositoryGitCommitMessageParserWorker
$parts = explode("\0", $info);
$encoding = array_shift($parts);
// See note above - git doesn't always convert the encoding correctly.
$do_convert = false;
if (strlen($encoding) && strtoupper($encoding) != 'UTF-8') {
if (function_exists('mb_convert_encoding')) {
$do_convert = true;
}
}
foreach ($parts as $key => $part) {
if ($do_convert) {
$parts[$key] = mb_convert_encoding($part, 'UTF-8', $encoding);
if ($encoding) {
$part = phutil_utf8_convert($part, 'UTF-8', $encoding);
}
$parts[$key] = phutil_utf8ize($part);
}