Javascript / jquery - верхние символы ansi с диакритическими знаками для объектов html

Я обращаю внимание на множество вопросов о преобразовании символов HTML, таких как больше / меньше, амперсанд и т. д., В объекты HTML, но меня это не волнует. У меня проблема:

  • Код JavaScript / Ajax, который передает значения из элемента управления INPUT, который имеет символ, такой как â, в программу PHP - в программе PHP я сохраняю данные с помощью mysqli_real_escape_string(), который, если бы я не использовал Javascript / Ajax, помог бы.

  • Похоже, что прежде, чем он попадет в код PHP, он преобразуется во что-то нечетное (два символа) в процессе (я уже исправил данные, поэтому не могу сказать вам точные два символа и сомневаюсь, что это так важно). Я хотел бы преобразовать его в â, который является правильным HTML-объектом. Однако я не могу найти в Интернете ответа на этот вопрос ...

Мне не нужен каждый символ в строке, преобразованный в объекты HTML, только буквы верхнего конца с диакритическими знаками (символы акцента и т. д.). Я надеюсь, что у кого-то есть функция для JavaScript, которая делает это, но пока то, что я вижу при поиске в Интернете, делает слишком много (преобразование каждого символа в строке в сущность HTML неэффективно по пространству при сохранении его в таблице) .

Код JavaScript / Ajax для получения и передачи данных:

  function remembrance_save()
  {
     // first thing, clear out the message div used for this (if there's anything there):
     document.getElementById("remembrance_message").innerHTML = "";

     // from here we need to get the contents of all the various entry areas, and pass them
     // off to a PHP file and save the data ...
     // copy award data to session object by use of ajax/php:
     var namecode    = document.getElementById("namecode").value;
     // get value from TinyMCE ... not the DOM for JavaScript:
     var remembrance = tinymce.get('remembrance').getContent();
     var cl          = document.getElementById("commentor_link").value;
     var cn          = document.getElementById("commentor_name").value;
     $.ajax
     ({
        type: "POST",
        url: "<?php echo $History_html_RootPath; ?>Who/AjaxCalls/remembrance_save.php",
        data: { 'namecode' : namecode,
                'remembrance' : remembrance,
                'commentor_link' : cl,
                'commentor_name' : cn },
        //cache: false,
        success: function(data)
        {
           // need to see if we have an error, if so, display it, otherwise,
           // we should hopefully have success ...
           if ( data.toLowerCase().includes( "error" ) )
           {
              var errormsg = "<div class='alert alert-danger'>"+data+"</div>";
              document.getElementById("remembrance_message").innerHTML = errormsg;
              return;
           }
           else
           {
              // success!
              // change the message, and then clear out the values:
              var message = "<div class='alert alert-success'>";
                  message += data;
                  message += "</div>";
              document.getElementById("remembrance_message").innerHTML = message;

              // clear out values:
              // the remembrance editor takes two, because TinyMCE (editor)
              // stores the values its own way
              document.getElementById("remembrance").value = "";
              tinymce.get('remembrance').setContent( "" );
              // the other two
              document.getElementById("commentor_link").value = "0";
              document.getElementById("commentor_name").value = "";
              return;
           }
        }  // end success
     }); // end ajax call
  }; // end function remembrance_save()

Возможный дубликат UTF-8 полностью

CBroe 10.08.2018 16:04

Вы не должны преобразовывать это в объекты HTML, а обрабатывать кодировку символов правильно. См. Дубликат для получения дополнительной информации.

CBroe 10.08.2018 16:05

Покажите нам, как именно вы отправляете свои данные через AJAX, вероятно, вы просто не позаботились о том, чтобы правильно их обработать в этот момент.

CBroe 10.08.2018 16:06

Кодировка UTF-8 не обрабатывает некоторые из необходимых мне символов, но latin-1 поддерживает (ISO-8859-1). Добавим выше код Ajax.

Ken Mayer 10.08.2018 16:19

Это чепуха, все, что у вас есть в ISO-8859-1, также покрыто Unicode.

CBroe 10.08.2018 16:20

Я знаю, что вы в это верите, но когда я использую UTF-8, некоторые символы, с которыми я работаю, НЕ отображаются должным образом. У меня есть некоторые представление о том, что я здесь делаю, у меня возникали проблемы с этим за последние несколько лет. У меня много международных имен, в которых используются самые разные символы. Пожалуйста, не будь таким снисходительным. Сказать мне «это абсолютная чепуха» бесполезно.

Ken Mayer 10.08.2018 16:22
«Но когда я использую UTF-8, некоторые символы, с которыми я работаю, НЕ отображаются должным образом» - ну значит вы не правильно справиться UTF-8 по всей цепочке. Если вы сочтете «бесполезным», когда вам укажут, что вы просто неправильно, тогда я не знаю, чем мы могли бы вам помочь. Ваш первоначальный примерный символ был â, и если у вас есть проблема с этим в UTF-8, то вы окончательно делаете что-то не так.
CBroe 10.08.2018 16:26

Быть грубым бесполезно. Сказать кому-то, что то, что они опубликовали, является «ерундой», не поможет, это будет грубостью, и если вы этого не видите, это ваша проблема, а не моя.

Ken Mayer 10.08.2018 16:28

Этот самый сайт здесь использует UTF-8, и если вы проверите исходный код, то вы увидите, что в HTML есть только â, например, в позиции вышеупомянутого "Которые имеют такой символ, как â, для программы PHP" - это простой символ, без сущностей HTML или что-нибудь еще.

CBroe 10.08.2018 16:28

Если вы не собираетесь помогать с моей проблемой, пожалуйста, остановитесь ... надеюсь, кто-нибудь с более полезным отношением к вам будет готов разместить здесь сообщение.

Ken Mayer 10.08.2018 16:31
0
10
34
0

Другие вопросы по теме