измените набор символов по умолчанию функций PHP как “htmlspecialchars”

Дополнительные методы (правовая оговорка: полностью непротестированный код, BTW...):

public static class ByteExtensions
{
    public static string ToHexString(this byte[] ba)
    {
        StringBuilder hex = new StringBuilder(ba.Length * 2);

        foreach (byte b in ba)
        {
            hex.AppendFormat("{0:x2}", b);
        }
        return hex.ToString();
    }
}

и т.д. Используйте любой из три решения Tomalak (с последним, являющимся дополнительным методом на строке).

7
задан Sabya 24 July 2009 в 07:57
поделиться

3 ответа

Как этот? http://us2.php.net/manual/en/function.setlocale.php

* LC_ALL for all of the below
* LC_COLLATE for string comparison, see strcoll()
* LC_CTYPE for character classification and conversion, for example strtoupper()
* LC_MONETARY for localeconv()
* LC_NUMERIC for decimal separator (See also localeconv())
* LC_TIME for date and time formatting with strftime()
* LC_MESSAGES for system responses (available if PHP was compiled with libintl)
2
ответ дан 7 December 2019 в 12:24
поделиться

Существует C-функция define_charset (char * charset_hint ...) , которая используется для поиска "правильной" кодировки на основе

в этом порядке и в зависимости от того, расширения встроены или нет.
«Проблема» в том, что когда вы вызываете htmlentities ('xyz') , этот define_charset () вызывается с charset_hint = NULL, и первая эта функция делает следующее:

/* Guarantee default behaviour for backwards compatibility */
if (charset_hint == NULL)
    return cs_8859_1;

У вас есть для вызова хотя бы htmlentities ('xyz', ENT_QUOTES, '' )

2
ответ дан 7 December 2019 в 12:24
поделиться

Я не совсем уверен, но я думаю, что mbstring.func_overload работает с htmlentities.

htmlspecialchars не содержит кодировки кстати. (По крайней мере, до тех пор, пока кодировка поддерживает подмножество ascii, что делает utf-8).

1
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: