Расширение Chrome jquery post wierd charset [дубликат]

Указатели на классы не являются действительными указателями; класс является логической конструкцией и не имеет физического существования в памяти, однако, когда вы строите указатель на член класса, он дает смещение в объект класса члена, где элемент может быть найден; Это дает важный вывод: Поскольку статические члены не связаны с каким-либо объектом, поэтому указатель на элемент НЕ МОЖЕТ указывать на статический член (данные или функции) вообще . Рассмотрим следующее:

class x
{
public:
int val;
x(int i) { val=i;}

int get_val(){return val;}
int d_val(int i){return i+i;}
};
int main()
{
int (x::*data)=&x::val;               //pointer to data member
int (x::*func)(int)=&x::d_val;        //pointer to function member
x ob1(1),ob2(2);
cout<<ob1.*data;
cout<<ob2.*data;
cout<<(ob1.*func)(ob1.*data);
cout<<(ob2.*func)(ob2.*data);
return 0;
}

Источник: полный справочник C ++ - Herbert Schildt 4th Edition

18
задан dda 17 November 2012 в 17:10
поделиться

2 ответа

Я понимаю, что Javascript использует UTF-8 для своих строк

Нет, нет.

Каждая страница имеет свою кодировку, определенную в мета тег, чуть ниже элемента заголовка

<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>

или

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"/>

Кроме того, каждая страница должна быть отредактирована с кодировкой целевой кодировки. В противном случае он не будет работать так, как ожидалось.

И это хорошая идея, чтобы определить его целевую кодировку кодировки на стороне сервера.

Java
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

PHP
header("Content-Type: text/html; charset=UTF-8");

C#
I do not know how to...

И это может быть хорошей идеей настройте каждый файл сценария, использует ли он чувствительные символы (á, é, í, ó, ú и т. д.).

<script type="text/javascript" charset="UTF-8" src="/PATH/TO/FILE.js"></script>

...

Итак, это моя теория, что если я перекодирую строку в ISO-8859-1 перед ее отправкой, она должна решить мою проблему

Нет, нет.

целевой сервер может обрабатывать строки, отличные от ISO-8859-1. Например, Tomcat обрабатывает ISO-8859-1, независимо от того, как вы настроили свою страницу. Итак, на стороне сервера вам может потребоваться настроить ваш запрос в соответствии с настройкой вашей страницы.

Java
request.setCharacterEncoding("UTF-8")

PHP
// I do not know how to...

Если вы действительно хотите перевести кодировку целевого кодирования, попробуйте следующее

InternetExplorer
    formElement.encoding = "application/x-www-form-urlencoded; charset=ISO-8859-1";
ELSE
    formElement.enctype  = "application/x-www-form-urlencoded; charset=ISO-8859-1";

Или вы должны предоставить функцию, которая получает числовое представление в Unicode Character Set, используемое каждым символом. Он будет работать независимо от кодировки целевой кодировки. Например, в качестве набора символов Юникода является \ u00E1;

alert("á without its Unicode Character Set numerical representation");
function convertToUnicodeCharacterSet(value) {
    if(value == "á")
        return "\u00E1";
}
alert("á Numerical representation in Unicode Character Set is: " + convertToUnicodeCharacterSet("á"));

Здесь вы можете видеть в действии:

Вы можете использовать этот link в качестве ориентира (см. JavaScript escapes)

Добавлен оригинальный ответ, как я реализую jQuery funcionality

var dataArray = $(formElement).serializeArray();
var queryString = "";
for(var i = 0; i < dataArray.length; i++) {
    queryString += "&" + dataArray[i]["name"] + "+" + encodeURIComponent(dataArray[i]["value"]);
}
$.ajax({
    url:"url.htm",
    data:dataString,
    contentType:"application/x-www-form-urlencoded; charset=UTF-8",
    success:function(response) {
        // proccess response
    });
});

Он отлично работает без какой-либо головной боли.

Привет,

24
ответ дан Chrillewoodz 28 August 2018 в 10:43
поделиться

У меня была очень похожая проблема. Мне нужно было передать параметр URL, используя JQuery, чтобы сделать вызов ajax, и большинство значений параметров времени включали акценты.

Обе страницы должны были быть установлены в charset = ISO-8859-1 и javascript: encodeURI, encodeURIComponent и т. д. использует только UTF-8.

Я сделал, чтобы создать ссылку на исходной странице, включая все параметры без какой-либо кодировки, скажем:

var myLink = document.getElementById("myHiddenLink");
myLink.setAttribute("href", "México, Perú, María and any other words with accents and spaces");

, а затем присвойте значение href переменной:

var theLink = myLink.getAttribute("href");

Таким образом, значение переменной «theLink» было кодировано по ISO-8859-1, и все работало нормально.

4
ответ дан Sergio 28 August 2018 в 10:43
поделиться
Другие вопросы по тегам:

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