Здравствуйте.Вообщем в чем проблема.Я отправляю с сервера запрос через форму (абсолютно рандомный текст. И мне надо его получить.Но получаю я только цифры. Код (C++): #include <TextFinder.h> #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; // Мак адрес IPAddress ip(192, 168, 0, 113); // IP адрес (изменить в title) EthernetServer server(80); char ge[128]; void setup() { //Старт Serial.begin(9600); Ethernet.begin(mac, ip); Serial.print("server is at "); Serial.println(Ethernet.localIP()); server.begin(); Serial.println("device is run"); } void loop(){ EthernetClient client = server.available(); if (client) { TextFinder response(client); while (client.connected()) { if (client.available()) { if(response.find("GET /")) { if (response.find("?login=")) { ge = response.getValue(); Serial.println(ge); } } // Выводим HTML страницу client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(); client.println(); client.println("<!DOCTYPE html>"); client.println("<html lang=\"ru\">"); client.println("<head>"); client.println("<meta charset=\"UTF-8\">"); client.println("<title>Home</title>"); client.println("</head>"); client.println("<body>"); client.println("<h1>Server</h1>"); client.println("<p>Нажата ссылка: "); client.println(ge); client.println("</p>"); client.println("<form id=\"auth\" action="" method=\"get\"></form>"); client.println("<p><input name=\"login\" form=\"auth\"></p>"); client.println("<p><input type=\"submit\" form=\"auth\"></p>" ); client.println("<p><a href=\"?p=1\">Link 1</a><br><a href=\"?p=2\">Link 2</a></p>"); client.println("</body>"); client.println("</html>"); client.stop(); } } } } Если (ge) сделать числом, то все хорошо работает, но мне надо получать символы, а затем я преобразую в строку.Но выводит ошибку ( exit status 1 incompatible types in assignment of 'long int' to 'char [128]'). Вот так, как быть? Спасибо.
Вся информация в лоне процессоров - это и есть цифры. Причем только две - 0 и 1. Всё остальное - это человеческие домыслы.
Это не рандомный текст, отнюдь. Тут две проблемы, и первая из них - русские буквы, если они есть. Буржуйские программы их не печатают в принципе. Вторая проблема - кодировка. В скетче я вижу UTF-8, а это восьмибитный юникод, использующий для передачи символа от 1 до 4 байт. Тут и человек свихнется, не то что махонький АТмега. Он любит и понимает 7-битный ASCII. Попробуйте скопировать в Ворд адрес этой странички, и тоже увидите вместо букв черт-те-что.
Ну, если не поддерживаются русские буквы, значит простой семибитный код. На то он и "америкэн", чтобы не знать русского. Есть другие варианты? С радостью восприму, вдруг пригодится.
Темными силами. Всяческой Антантой и другими авторами стандартов. Всегда доставало, что албанский в списках наличествует. а русский нет.