protected function PHPTransliteration::replace

Replaces a single Unicode character using the transliteration database.

Parameters

int $code: The character code of a Unicode character.

string $langcode: The language code of the language the character is in.

string $unknown_character: The character to substitute for characters without transliterated equivalents.

Return value

string US-ASCII replacement character. If it has a mapping, it is returned; otherwise, $unknown_character is returned.

1 call to PHPTransliteration::replace()
PHPTransliteration::transliterate in drupal/core/lib/Drupal/Component/Transliteration/PHPTransliteration.php
Implements TransliterationInterface::transliterate().

File

drupal/core/lib/Drupal/Component/Transliteration/PHPTransliteration.php, line 145
Definition of \Drupal\Component\Transliteration\PHPTransliteration.

Class

PHPTransliteration
Implements transliteration without using the PECL extensions.

Namespace

Drupal\Component\Transliteration

Code

protected function replace($code, $langcode, $unknown_character) {
  if ($code < 0x80) {

    // Already lower ASCII.
    return chr($code);
  }

  // See if there is a language-specific override for this character.
  if (!isset($this->languageOverrides[$langcode])) {
    $this
      ->readLanguageOverrides($langcode);
  }
  if (isset($this->languageOverrides[$langcode][$code])) {
    return $this->languageOverrides[$langcode][$code];
  }

  // See if there is a generic mapping for this character.
  $bank = $code >> 8;
  if (!isset($this->genericMap[$bank])) {
    $this
      ->readGenericData($bank);
  }
  $code = $code & 0xff;
  return isset($this->genericMap[$bank][$code]) ? $this->genericMap[$bank][$code] : $unknown_character;
}