[Résolu]Convertion Byte to String

Bonjour,

A mon avis le probléme est trés simple.
String page est une variable local, avant de quitter la fonction celle ci sera désallouer, or tu fait un return de cette variable.
Celle ci n'existant plus au moment du return tu te retrouve avec n'importe quoi.

Essaye avec un passage par référence :

// Passage de "page" par référence (équivalent d'un passage par pointeurs, sans pointeurs)
void readFile(String &page, char *filename){
  page = ""; // Vide la String
  
  File fi = SD.open(filename); // Ouverture du fichier
  if (!fi) { // Gestion d'erreur
    Serial.print("Erreur open() ");
    Serial.println(filename); // Message d'erreur
    return;
  }
  
  while (fi.available()) // Lecture jusqu'a EOF
    page += fi.read(); // Ajout d'un char à la String

  fi.close(); // Fermeture du fichier
}

PS: charger un fichier entièrement en ram est la pire des mauvaise idées, tu n'as que 2Ko de ram sur une carte arduino, et seulement 500 octets de libre une fois que la librairie SD est chargé.
A moins que ton fichier ne fasse que quelques caractéres (une dizaine par exemple) tu auras des problémes de manque de ram très rapidement.