文件名更改后,Arduino String.replace()无效

时间:2017-12-30 09:38:22

标签: string replace arduino esp8266 arduino-esp8266

当我的NodeMCU 0.9主板上运行此代码时,我遇到了一个奇怪的故障。它基本上以以下格式从API获取http代码:

<abbr title="klokken">kl</abbr> 11–12

在这种情况下,我想通过先删除前42个字符完全正常然后用 - 替换 - 来隔离11和12。当我打开草图并将此程序粘贴到其中时,它运行完全正常并返回11--12 但当我以随机名称保存此程序时,它会被重建并且由于某种原因不能正确替换字符然后返回11 - 12。 我已经尝试在重建时替换字符串的不同部分,但工作正常但由于某种原因,我似乎无法找到索引或替换三个奇怪的字符。

http.begin(URL_time);
  int httpCode = http.GET();
  String timerange;
  if(httpCode > 0){
    timerange = http.getString();
    timerange.remove(0,42);
    timerange.replace("–", "--");
    Serial.println(timerange);

因此我的问题是,除了不保存我的代码之外,是否有人知道如何解决这个问题。请在需要时随时让我详细说明我的问题。

1 个答案:

答案 0 :(得分:0)

您接收的字符串在Windows Latin 1(ISO 8859-1)中编码,您(可能)使用UTF-8编码。你需要的是正确地重新编码字符串。