Skip to content

No return of UTF-8 characters in HTTPClient.h #1193

@ShoootLight

Description

@ShoootLight

Hardware:

Board: NodeMCU-32S
Core Installation/update date: 07/mar/2018
IDE name: Arduino IDE
Flash Frequency: 40Mhz
Upload Speed: 115200

Description:

By getting a requested site ('based' on this tutorial) I don't receive UTF-8 characters (in my case: ä, ö, ü), they are just replaced by '⸮' which makes me a bit confused because strings shall support UTF8-chars.

I'm pretty new to coding, so I'm just making a small mistake? I also looked into the code of HTTPClient.h but found nothing helpful. Maybe there is just a parameter which activates it?
I thank you in advance for your support.

Sketch:

#include <WiFi.h>
#include <HTTPClient.h>

const char* ssid = "confidential";
const char* password =  "confidential";

void setup() {

  Serial.begin(115200);
  delay(1000);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  Serial.println("Connected to the WiFi network");
}

const char* root_ca = \
                      "-----BEGIN CERTIFICATE-----\n" \
                      "MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB\n" \
                      "qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf\n" \
                      "Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw\n" \
                      "MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV\n" \
                      "BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw\n" \
                      "NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j\n" \
                      "LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG\n" \
                      "A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl\n" \
                      "IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG\n" \
                      "SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs\n" \
                      "W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta\n" \
                      "3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk\n" \
                      "6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6\n" \
                      "Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J\n" \
                      "NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA\n" \
                      "MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP\n" \
                      "r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU\n" \
                      "DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz\n" \
                      "YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX\n" \
                      "xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2\n" \
                      "/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/\n" \
                      "LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7\n" \
                      "jVaMaA==\n" \
                      "-----END CERTIFICATE-----\n";

void loop() {

  if ((WiFi.status() == WL_CONNECTED)) { //Check the current connection status

    HTTPClient http;

    http.begin("https://www.kvb.koeln/generated/?aktion=show&code=534", root_ca); //Specify the URL and certificate
    int httpCode = http.GET();                                                  //Make the request

    if (httpCode > 0) { //Check for the returning code

      String payload = http.getString();
      Serial.println(httpCode);
      Serial.println(payload);
    }

    else {
      Serial.println("Error on HTTP request");
    }

    http.end(); //Free the resources
  }

  delay(10000);
}

Debug Messages:

2
load:0x3fff0018,len:4
load:0x3fff001c,len:812
load:0x40078000,len:0
load:0x40078000,len:11404
entry 0x40078a28
Connecting to WiFi..
Connected to the WiFi network
<html>
<head>
	    <link href="/css/bootstrap.min.css" type="text/css" rel="stylesheet" />
    <link href="/css/main.css" type="text/css" rel="stylesheet" />
        </head>
<body>
	
    <style>body, html { font-family:Verdana; font-size:0.9rem;margin:0!important;padding:0rem!important;background-color:#ffffff;color:#000000; }</style><div><table border='0' cellpadding='4' cellspacing='0' style='width:100%;'><tr><td style="padding:2px!important;font-size:12px;">&nbsp;<span style="font-size:10px;color:#000000;">07.03.2018 - 20:46 Uhr</span><br /></td></tr></table><table border='0' cellpadding='4' cellspacing='0' style='width:100%;font-size:12px;'><tr><td style='color:#000000;font-weight:bold;font-size:12px;padding:2px!important;' colspan='3'>&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">S⸮lz</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">2&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">K⸮nigsforst</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">7&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">S⸮lz</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">16&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">K⸮nigsforst</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">22&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">S⸮lz</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">31&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">K⸮nigsforst</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">35&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">S⸮lz</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">46&nbsp;Min&nbsp;</td></tr><tr><td style="padding:2px!important;width:30px;text-align:right;color:#000000;" valign="top">&nbsp;9&nbsp;&nbsp;</td><td style="padding:2px!important;color:#000000;">K⸮nigsforst</td><td style="padding:2px!important;width:60px;text-align:right;color:#000000;">50&nbsp;Min&nbsp;</td></tr></table><br /></div>




The important part of debug (among other (similar) things):

>S⸮lz</td>

And what it shall look like:

>Sülz</td>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions