• 04-06-2020, 17:38:32
    #1
    Aşağıdaki kod bloğunu NodeJS/Javascript ile nasıl oluşturabilirim ? Denemediğim yol kalmadı fakat hala istediğim sonuca ulaşamadım maalesef

     $user_basket = base64_encode(json_encode(array(
    array("Örnek ürün 1", "18.00", 1)
    )));
  • 04-06-2020, 17:42:14
    #2
    Üyeliği durduruldu
    var user_basket = atob(JSON.stringify([["Örnek ürün 1", "18.00", 1]]));

    Bunu dener misiniz?

    Edit: Üstteki kod browserda çalışır ama Nodejs'te çalışmaz sanırım.

    var user_basket = Buffer.from(JSON.stringify([["Örnek ürün 1", "18.00", 1]])).toString('base64')

    Bu kod sorunsuz çalışıyor Nodejs ile
  • 04-06-2020, 17:47:19
    #3
    awoken adlı üyeden alıntı: mesajı görüntüle
    var user_basket = atob(JSON.stringify([["Örnek ürün 1", "18.00", 1]]));

    Bunu dener misiniz
    atob "The string to be decoded is not correctly encoded." hatası vermekte, btoa olarak denediğimde PHP'deki kod bloğu ile aynı sonuca ulaşamıyorum maalesef
  • 04-06-2020, 17:51:31
    #4
    Üyeliği durduruldu
    SevincServices adlı üyeden alıntı: mesajı görüntüle
    atob "The string to be decoded is not correctly encoded." hatası vermekte, btoa olarak denediğimde PHP'deki kod bloğu ile aynı sonuca ulaşamıyorum maalesef
    Editleyerek ekledim kodu denerseniz PHP koduyla aynı çıktı veriyor, denedim. Eğer farklı çıktı veriyor ise muhtemelen dosya karakter kodlamasından kaynaklıdır.
  • 04-06-2020, 18:00:33
    #5
    awoken adlı üyeden alıntı: mesajı görüntüle
    Editleyerek ekledim kodu denerseniz PHP koduyla aynı çıktı veriyor, denedim. Eğer farklı çıktı veriyor ise muhtemelen dosya karakter kodlamasından kaynaklıdır.
    Maalesef farklı çıktı veriyor hocam, dosya karakter kodlamasından kastınız nedir ?
    PHP çıktı:
    W1siXHUwMGQ2cm5layBcdTAwZmNyXHUwMGZjbiAxIiwiMTguMDAiLDFdXQ==
    NodeJS çıktı:
    W1siw5ZybmVrIMO8csO8biAxIiwiMTguMDAiLDFdXQ==
  • 04-06-2020, 18:28:24
    #6
    Üyeliği durduruldu
    SevincServices adlı üyeden alıntı: mesajı görüntüle
    Maalesef farklı çıktı veriyor hocam, dosya karakter kodlamasından kastınız nedir ?
    PHP çıktı:
    W1siXHUwMGQ2cm5layBcdTAwZmNyXHUwMGZjbiAxIiwiMTguMDAiLDFdXQ==
    NodeJS çıktı:
    W1siw5ZybmVrIMO8csO8biAxIiwiMTguMDAiLDFdXQ==
    Sorunu anladım, PHP tarafında u şeklinde unicode haline çevriliyor fakat js tarafında olmuyor. Bunu alttaki kod ile çözdüm fakat en mantıklı çözüm bu olmayabilir.
    function unicode(s) {
      return s.replace(/[^\0-~]/g, function(ch) {
        return "\\u" + ("000" + ch.charCodeAt().toString(16)).slice(-4); });
    }
    var user_basket = Buffer.from(JSON.stringify(
      [
        [unicode("Örnek ürün 1"), "18.00", 1]
      ]
      ).replace(/\\\\u/g, "\\u")).toString('base64')
  • 04-06-2020, 18:31:13
    #7
    awoken adlı üyeden alıntı: mesajı görüntüle
    Sorunu anladım, PHP tarafında u şeklinde unicode haline çevriliyor fakat js tarafında olmuyor. Bunu alttaki kod ile çözdüm fakat en mantıklı çözüm bu olmayabilir.
    function unicode(s) {
      return s.replace(/[^\0-~]/g, function(ch) {
        return "\\u" + ("000" + ch.charCodeAt().toString(16)).slice(-4); });
    }
    var user_basket = Buffer.from(JSON.stringify(
      [
        [unicode("Örnek ürün 1"), "18.00", 1]
      ]
      ).replace(/\\\\u/g, "\\u")).toString('base64')
    Daha iyisini bulana kadar en iyisi budur hocam Çok teşekkürler