Unicode Regex; Недопустимые символы XML

Надеюсь, вы получили свой ответ, который является конструктором по умолчанию. Но я даю ниже инструкции для исправления приведенных комментариев.

  • Java не инициализирует ни одну локальную переменную для значения по умолчанию. Поэтому, если вы создаете объект класса, он будет вызывать конструктор по умолчанию и предоставлять значения по умолчанию для Object.
  • Конструктор по умолчанию предоставляет значения по умолчанию для объекта, такого как 0, нуль и т. Д. В зависимости от типа.
blockquote>

Подробнее см. ссылку ниже.

https://www.javatpoint.com/constructor

41
задан Edward Z. Yang 29 December 2008 в 16:51
поделиться

2 ответа

Для систем, который внутренне хранит кодовые точки в UTF-16, распространено использовать суррогатные пары (xD800-xDFFF) для кодовых точек выше 0xFFFF, и в тех системах необходимо проверить, можете ли Вы действительно использовать, например, \u12345 или должны определить что как суррогатную пару. (Я просто узнал, что в C# можно использовать \u1234 (16 битов) и \U00001234 (32-разрядный) )

Согласно , Microsoft "рекомендация W3C не позволяет суррогатные символы в элементе или названиях атрибута". При поиске веб-сайта W3s я нашел C079 и C078, который мог бы представлять интерес.

6
ответ дан some 23 September 2019 в 15:08
поделиться

Я знаю, что это не совсем ответ на ваш вопрос, но полезно иметь его здесь:

Регулярное выражение для соответствия действительным Символам XML:

[\u0009\u000a\u000d\u0020-\uD7FF\uE000-\uFFFD]

Итак, чтобы удалить недопустимые символы из XML, вы должны сделать что-то вроде

// filters control characters but allows only properly-formed surrogate sequences
private static Regex _invalidXMLChars = new Regex(
    @"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]",
    RegexOptions.Compiled);

/// <summary>
/// removes any unusual unicode characters that can't be encoded into XML
/// </summary>
public static string RemoveInvalidXMLChars(string text)
{
    if (string.IsNullOrEmpty(text)) return "";
    return _invalidXMLChars.Replace(text, "");
}

У меня был наш резидентный гений регулярных выражений / XML, он из более чем 4400 сообщений, за которые проголосовали , проверьте это, и он подписался на нем.

87
ответ дан 26 November 2019 в 23:32
поделиться
Другие вопросы по тегам:

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