Указатели на классы не являются действительными указателями; класс является логической конструкцией и не имеет физического существования в памяти, однако, когда вы строите указатель на член класса, он дает смещение в объект класса члена, где элемент может быть найден; Это дает важный вывод: Поскольку статические члены не связаны с каким-либо объектом, поэтому указатель на элемент НЕ МОЖЕТ указывать на статический член (данные или функции) вообще . Рассмотрим следующее:
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
Я понимаю, что Javascript использует UTF-8 для своих строк
blockquote>Нет, нет.
Каждая страница имеет свою кодировку, определенную в мета тег, чуть ниже элемента заголовка
<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 перед ее отправкой, она должна решить мою проблему
blockquote>Нет, нет.
целевой сервер может обрабатывать строки, отличные от 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 }); });
Он отлично работает без какой-либо головной боли.
Привет,
У меня была очень похожая проблема. Мне нужно было передать параметр 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, и все работало нормально.