Обнаружил проблему, было другое место, где должен быть указан UTF-8.
В HTTP-запросе справа от Метода вы также должны установить Content Encoding на UTF-8
Да, задним числом это кажется очевидным, но было несколько причин, по которым я не думал, что это было необходимо.Некоторые из моих неверных предположений могут быть полезны для других, кто отлаживает, так что здесь - я бы подумал, что:
1: Как только текст переходит в Java как Unicode, он остается Unicode и входит ви вышел UTF-8.Очевидно, что не в этом случае.
2: Я думал, что HTTP по умолчанию использует UTF-8, если вы не говорите иначе, но, возможно, я просто привык к XML, но, вероятно, это не очень хорошая практика, чтобы предположить это, иможет быть, по умолчанию HTTP - ISO-Latin1 или что-то в этом роде, или даже если есть спецификация, может быть, люди не следуют ей.
3: И если я не укажу это, я думаю, что «не надо»Подход "вред" будет состоять в том, чтобы передать символы и позволить получателю на другом конце справиться с этим.Снова неверно!
(ОК, поэтому пункты 1, 2 и 3 немного пересекаются)
4: Несмотря на то, что мой HTTP-запрос POST, я все равно пробовал установить флажок Кодировать.Я, конечно, думал, что это закодировало бы это, но все, что я получил, это повторяющийся% hex для вопросительных знаков, так что мне показалось, что в тот момент данные уже были повреждены.Опять не так.Я подозреваю, что в фазе HTTP есть ДВУХ символьных переходов, сначала из Unicode в любую кодировку, которая, по его мнению, у вас есть, а затем вторую кодировку в знаки%, и мои данные были неправильно закодированы на первом шаге.
5: И я бы подумал, что JMeter скажет что-нибудь или предупредит, но из моего прочтения, очевидно, это не поможетВы можете сделать запись или что-то еще.
И "?"Java сообщает о проблеме по умолчанию, это началось на таймфрейме Java 1.4x.В моем Java-коде я предпочитаю устанавливать ошибки кодирования, чтобы сообщать о них как об исключении, но опять-таки, не по умолчанию и не в том, что делает JMeter.
Поэтому я усвоил урок.
СОВЕТUnicode, по крайней мере, начинал с того, что ОК был в том, что количество вопросительных знаков равнялось числу японских символов, вместо того, чтобы иметь в 2 или 3 раза больше вопросительных знаков.Если длина "???"соответствует вашей японской (или китайской) строке, тогда Java DID увидит реальные символы Unicode в некоторый момент пути.Принимая во внимание, что если вы видите в 3 раза больше? Как входного текста, то Java всегда рассматривает их как байты или целые числа или что-то еще, и НИКОГДА не в качестве допустимых кодовых точек.