загрузить файл и форму проверки в ajax php

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

Мое прагматическое заключение шокирует просто: все, что C ++ (и STL) «кодирование символов» существенно нарушено и бесполезно. Виноват это в Microsoft или нет, это все равно не поможет.

Мое решение, после глубокого расследования, много разочарования и последующего опыта заключается в следующем:

  1. accept , что вы должны нести ответственность за свой материал для кодирования и преобразования (и вы увидите, что большая часть его довольно тривиальная)
  2. используют std :: string для любых кодированных строк UTF-8 (только a typedef std::string UTF8String)
  3. принимают, что такой объект UTF8String является просто тупым, но дешевым контейнером. Никогда не обращайтесь к ним и / или не манипулируйте ими непосредственно (без поиска, замены и т. Д.). Вы могли бы, но вы действительно просто действительно не хотите тратить свое время на написание алгоритмов манипуляции текста для многобайтовых строк! Даже если другие люди уже делали такие глупые вещи, не делайте этого! Будь как будет! (Ну, есть сценарии, где это имеет смысл ... просто используйте библиотеку ICU для них).
  4. использовать std :: wstring для кодированных строк UCS-2 (typedef std::wstring UCS2String) - это компромисс , и концессию на беспорядок, введенный WIN32 API). UCS-2 является достаточным для большинства из нас (подробнее об этом позже ...).
  5. использует экземпляры UCS2String всякий раз, когда требуется доступ к символьным символам (чтение, манипулирование и т. Д.). Любая обработка на основе символов должна выполняться в N-многобайтовом представлении. Это просто, быстро и легко.
  6. добавить две служебные функции для преобразования back & amp; между UTF-8 и UCS-2:
    UCS2String ConvertToUCS2( const UTF8String &str );
    UTF8String ConvertToUTF8( const UCS2String &str );
    

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

Вот и все. Используйте UTF8String везде, где важна память, и для всех входов / выходов UTF-8. Используйте UCS2String везде, где строка должна анализироваться и / или обрабатываться. Вы можете конвертировать между этими двумя представлениями в любое время.

Альтернативы & amp; Улучшения

  • преобразования из & amp; однобайтовые кодировки символов (например, ISO-8859-1) могут быть реализованы с помощью простых таблиц перевода, например. const wchar_t tt_iso88951[256] = {0,1,2,...}; и соответствующий код для преобразования в & amp; из UCS2.
  • , если UCS-2 недостаточно, чем переключиться на UCS-4 (typedef std::basic_string UCS2String)

ICU или другие библиотеки Unicode?

Для продвинутых материалов.

0
задан hanane azee 17 January 2019 в 09:33
поделиться

1 ответ

Просто поместите свой второй вызов в первую функцию успеха.

Примечание: код ниже использует $.post() вместо $.ajax(), но результат тот же.

$('form').submit(function(event) {
    event.preventDefault()

    const name = $('#name').val()
    const email= $('#email').val()
    const file = $('#file').val()
    const submit = $('#submit').val()

    $.post('test.php', {
        name: name,
        email: email,
        file: file,
        submit: submit
    }, function(data) {
        alert(data)

        $(".form_mess").load('test.php', {
            name: name,
            email: email,
            file: file,
            submit: submit
        })
    })
})
0
ответ дан SteeveDroz 17 January 2019 в 09:33
поделиться
Другие вопросы по тегам:

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