Что означает то, когда мой текст отображен как Вопросительные знаки?

нет необходимости использовать все вышеупомянутые функции, такие как array_filter. Потому что array_filter фильтрует массив. И фильтрация отличается от поиска первого значения . Итак, просто сделайте это:

foreach ($array as $key => $value) {
    if (meetsCondition($value)) {
        $result = $value;
        break;
        // or: return $value; in in function
    }
}

array_filter отфильтрует весь массив . Поэтому, если требуемое значение является первым, а массив содержит 100 или более элементов, array_filter все равно будет проверять все эти элементы. Итак, вам действительно нужно 100 итераций вместо 1? Ответ ясен - нет .

9
задан Community 23 May 2017 в 12:17
поделиться

3 ответа

В Windows существует 2 общих проблемы с дисплеем, которые происходят при попытке отобразить символы Unicode:

  1. текст иногда появляется как вопросительные знаки

    • Это происходит, когда данные Unicode преобразовываются в 8-разрядное кодирование набора символов (или технически многобайтовые символы) обычно с помощью системной кодовой страницы (но другие кодовые страницы могут быть указаны в вызовах преобразования). Если целевой 8-разрядный набор символов не включает необходимые символы, любые символы, не представимые в целевом наборе символов, преобразовываются в вопросительные знаки.
  2. текст иногда появляется как поля

    • Это - проблема со шрифтом, не имеющим glpyh для конкретного символа. Втискивает шоу, когда существует несоответствие между символами Unicode в документе и поддерживаемых шрифтом. А именно, поля представляют символы, не поддерживаемые выбранным шрифтом.
8
ответ дан 4 December 2019 в 21:52
поделиться

Это означает, что Ваш текст Unicode становится преобразованным в текст ANSI где-нибудь. Так как символы Unicode за пределами латинского 1 не могут быть преобразованы в ANSI, они преобразовываются в вопросительные знаки. Удостоверьтесь, что Ваша программа компилируется с поддержкой Unicode на (т.е. UNICODE символов препроцессора, и _UNICODE являются #defined Вашим проектом), так, чтобы Вы всегда назвали надлежащие версии Unicode различных функций Windows.

1
ответ дан 4 December 2019 в 21:52
поделиться

В основном Вы повредили текст. Вы берете текст Unicode в одном кодировании и затем преобразовали его в другое кодирование, не проверяя, что целевое кодирование включает все символы в исходном тексте. Сделав, таким образом, у Вас есть набор мусора.

Способы сделать это включает:

  1. Обработка текста UTF-8 как ANSI (не преобразовывая в действительную кодовую страницу сначала)
  2. Преобразование текста Unicode в кодовую страницу, не проверяя, имеет ли кодовая страница правильные символы в ней.
0
ответ дан 4 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

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