Multipart/form-data и UTF-8 в приложении Классика ASP

Да, удостоверьтесь, что Вам установили разумного редактора. Не уверенный то, что Вы - редактор по умолчанию, будет всего лишь, если, как я, это будет нано (то скажет где-нибудь около вершины после ввода фиксации), просто необходимо ввести в комментарии и затем поразить Ctrl-x для окончания. Тогда хит y, сопровождаемый входит для подтверждения фиксации.

кроме того, если Вы хотите видеть простой список файлов, Вы будете фиксировать, а не огромная разность, перечисляющая заранее, пробуют

git diff --name-only
6
задан fredrik 25 December 2017 в 23:31
поделиться

3 ответа

Ваш анализ CStrU верен. Предполагается, что клиент отправляет однобайтовые символы ANSI. Также предполагается, что кодовая страница, используемая клиентом и локалью, в которой работает VBScript, одинакова.

При использовании UTF-8 предположения, сделанные CStrU, всегда будут неверными. Насколько мне известно, не существует языкового стандарта с кодовой страницей 65001 (я думаю, что есть один или два, которые используют 65000, но это опять же другое).

Вот функция замены, которая предполагает, что текст находится в UTF-8 : -

 Private Function CStrU(ByRef pstrANSI)

  Dim llngLength '' # Length of ANSI string
  Dim llngIndex '' # Current position
  Dim bytVal
  Dim intChar

  '' # determine length
  llngLength = LenB(pstrANSI)

  '' # Loop through each character
  llngIndex = 1
  Do While llngIndex <= llngLength

   bytVal = AscB(MidB(pstrANSI, llngIndex, 1))
   llngIndex = llngIndex + 1

   If bytVal < &h80 Then
    intChar = bytVal
   ElseIf bytVal < &hE0 Then

    intChar = (bytVal And &h1F) * &h40

    bytVal =  AscB(MidB(pstrANSI, llngIndex, 1))
    llngIndex = llngIndex + 1

    intChar = intChar + (bytVal And &h3f)

   ElseIf bytVal < &hF0 Then

    intChar = (bytVal And &hF) * &h1000

    bytVal =  AscB(MidB(pstrANSI, llngIndex, 1))
    llngIndex = llngIndex + 1

    intChar = intChar + (bytVal And &h3F) * &h40

    bytVal =  AscB(MidB(pstrANSI, llngIndex, 1))
    llngIndex = llngIndex + 1

    intChar = intChar + (bytVal And &h3F)

   Else
    intChar = &hBF
   End If

   CStrU = CStrU & ChrW(intChar)
  Loop

 End Function

Обратите внимание, что после исправления CStrU для UTF-8 вывод страницы вашего примера теперь выглядит неправильно. Совет по установке кодовой страницы файла на 65001 также является обязательным. Поскольку вы устанавливаете CharSet, отправляемый клиенту, в "UTF-8"

5
ответ дан 17 December 2019 в 00:11
поделиться

Я не знаю, будет ли это любая помощь, но я работал с некоторым классическим кодом ASP , чтобы использовать утилиту SWFUpload (плагин Flash, который позволяет загружать несколько файлов за один раз).

Пример кода ASP включает в себя некоторый исчерпывающий код, который сортирует декодирование байтов / Unicode и похоже на то, что вы упомянули относительно chr (AscB (MidB (... - возможно, второй пример может пролить свет на вашу проблему.

1
ответ дан 17 December 2019 в 00:11
поделиться

«в те времена», я использовал ASPUpload . Было дешевле купить, чем тратить время на борьбу с данными формы. Немного похоже на ASP.NET, он делает доступными для запроса как обычные поля, так и загруженные файлы, но при этом (IIRC) нарушает старый объект формы - то есть после чтения из ASPUpload входной поток будут использованы, и попытка использовать обычные входные данные не удастся.

Вы можете использовать оба подхода в одном приложении - но не оба одновременно во время одного запроса страницы; выберите один или другой, в основном (обычно на основе входящего MIME).

1
ответ дан 17 December 2019 в 00:11
поделиться
Другие вопросы по тегам:

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