Partage
  • Partager sur Facebook
  • Partager sur Twitter

Traiter des caractères spéciaux avec base64_encode

Sujet résolu
    1 octobre 2024 à 14:36:16

    Bonjour,

    Je souhaite convertir du texte en base64.

    Le problème c'est que mon texte contient des caractères spéciaux à savoir des antislashs et encore plus problématique, il y en a 3 à la suite.

    La fonction base64_encode me renvoi une chaine base64 qui contient seulement deux antislashs au lieu des 3 dans mon texte d'origine.

    Exemple

    base64_encode('\\\"start_year\\\":\\\"2024\\\"')

    Me retourne XFwic3RhcnRfeWVhclxcIjpcXCIyMDI0XFwi ce qui correspond à  \\"start_year\\":\\"2024\\"

    Comment faire pour conserver les \\\ après l'encodage? 

    La chaine de caractère conformément convertie est XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg==

    • Partager sur Facebook
    • Partager sur Twitter
      1 octobre 2024 à 15:17:22

      > Pour spécifier un antislash littéral, doublez-le (\)

      Si tu veux 3 backslashs, tu dois écrire ta chaîne avec 5 (ou 6) ?

      var_dump(base64_encode('\\\\\"start_year\\\\\":\\\\\"2024\\\\\"'));
      var_dump(base64_encode('\\\\\\"start_year\\\\\\":\\\\\\"2024\\\\\\"'));
      
      string(44) "XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg=="
      string(44) "XFxcInN0YXJ0X3llYXJcXFwiOlxcXCIyMDI0XFxcIg=="
      

      Vu que \" n'est pas une séquence d'échappement valide/reconnue, il la retranscrit littéralement sans changement c'est pourquoi avec 5 ça fonctionne aussi.

      -
      Edité par julp 1 octobre 2024 à 15:29:34

      • Partager sur Facebook
      • Partager sur Twitter
        1 octobre 2024 à 22:16:30

        Merci infiniment, ça fonctionne parfaitement !
        • Partager sur Facebook
        • Partager sur Twitter

        Traiter des caractères spéciaux avec base64_encode

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown