Вывод PHP, показывающий маленькие черные бриллианты со знаком вопроса - PullRequest
70 голосов
/ 09 ноября 2008

Я пишу программу php, которая извлекает данные из базы данных. У некоторых из varchars есть кавычки, которые отображаются в виде черных бриллиантов с вопросительным знаком в них (*, ЗАМЕНА ХАРАКТЕР , я предполагаю из текста Microsoft Word).

Как я могу использовать php для удаления этих символов?

Ответы [ 21 ]

1 голос
/ 07 сентября 2016

В конце концов, после того, как я исправил свои таблицы, в итоге я сделал резервные копии и изменил настройки на utf-8, затем я изменил свой файл дампа так, чтобы DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci были записями моего набора символов

теперь у меня больше нет проблем с набором символов, потому что база данных и браузер - utf8.

Я понял, что вызвало это. Это была веб-страница + браузерные эффекты на БД. На терминалах, которые являются linux (ubuntu + firefox), он кодировал базу данных в latin1, что является тем, что установлено для вкладок. Но на оконных 10 + оконечных терминалах записи были принудительно закодированы в utf8. Также я заметил, что у windows 10 есть проблемы с латиницей1, поэтому я решил согнуться с ветром и преобразовать все в utf8.

Я подумал, что это проблема Windows 10, потому что мы начали использовать терминалы win 10. так что еще раз ошибки Microsoft вызывает проблемы. Я до сих пор не знаю, почему кодирование изменяется на формах, потому что браузер в windows 10 показывает набор символов latin1, но когда он переходит в кодированный utf8, и я получаю аномалию данных. но в Linux + Firefox этого не происходит.

1 голос
/ 09 ноября 2008

Это может быть вызвано Unicode или другим несоответствием кодировки. Попробуйте изменить кодировку в вашем браузере, в настройках текст будет выглядеть хорошо. Тогда возникает вопрос, как преобразовать содержимое вашей базы данных в кодировку, которую вы используете для отображения. (Что на самом деле может быть просто добавлением оператора кодировки utf-8 в ваш вывод.)

1 голос
/ 15 марта 2017

Просто добавьте эти строки перед заголовками.

Будет получен точный формат .doc/docx файлов:

 if(ini_get('zlib.output_compression'))

   ini_set('zlib.output_compression', 'Off');
 ob_clean();
0 голосов
/ 26 августа 2017

Перейдите к своему phpmyadmin и выберите свою базу данных и просто увеличьте длину / значение поля этой таблицы до 500 или 1000, это решит вашу проблему.

0 голосов
/ 07 июня 2017

Когда вы извлекаете данные из любого места, вы должны использовать функции с префиксом md_FUNC_NAME.

Была такая же проблема, она помогла мне.

Или вы можете найти код этого символа и использовать регулярные выражения для удаления этих символов.

0 голосов
/ 24 марта 2017

Для глобальных целей.

Вместо преобразования, кодификации, декодирования каждого текста я предпочитаю оставить их такими, какие они есть, и вместо этого изменить настройки php сервера. Таким образом,

  1. Пусть бриллианты
  2. В браузере в меню просмотра выберите "кодировка текста" и найти тот, который позволяет вам увидеть ваш текст правильно.
  3. Отредактируйте свой php.ini и добавьте:

    default_charset = "ISO-8859-1"

или вместо ISO-8859 тот, который соответствует вашей кодировке текста.

0 голосов
/ 09 ноября 2008

Вы также можете изменить набор символов в вашем браузере. Просто по причинам отладки.

0 голосов
/ 03 января 2017

Это сработало в моем случае:

$text = utf8_decode($text)

Я превращаю символ черного алмаза в знак вопроса, чтобы вы могли:

$text = str_replace('?', '', utf8_decode($text));
0 голосов
/ 22 июня 2014

Использование одной и той же кодировки (как предлагается здесь) как в базе данных, так и в HTML не сработало для меня ... Поэтому, помня, что код генерируется как HTML, я решил использовать " (HTML code) или " (код ISO Latin-1) в тексте моей базы данных, где использовались кавычки. Это решило проблему, предоставив мне кавычку. Странно отметить, что до этого решения только некоторые из кавычек и апострофов отображались некорректно, в то время как другие отображали их, однако специальный код работал во всех случаях.

0 голосов
/ 06 мая 2019

Просто вставьте этот код в начало страницы.

<?php
header("Content-Type: text/html; charset=ISO-8859-1");
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...