反应本机Base64编码字符串

dog*_*tar 3 base64 react-native

我正在尝试使用base-64库

https://github.com/mathiasbynens/base64

当我运行测试来验证代码时,我得不到正确的结果.我还有其他可以使用的库吗?

这是我运行的代码和我得到的结果

import utf8 from 'utf8'
import base64 from 'base-64'

var text = 'foo © bar  baz';
var bytes = utf8.encode(text);
var encoded = base64.encode(bytes);
console.log(encoded);
// ? 'Zm9vIMKpIGJhciDwnYyGIGJheg=='
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果

W29iamVjdCBBcnJheUJ1ZmZlcl0 =

请有人帮忙

提前致谢

San*_*Rao 13

我认为不需要为此使用任何第三方软件包。下面一个正在使用 React-Native

const Buffer = require("buffer").Buffer;
let encodedAuth = new Buffer("your text").toString("base64");
Run Code Online (Sandbox Code Playgroud)


Rya*_*ter 12

在 React Native v0.66.1 中测试并工作

import { Buffer } from 'buffer'
    
export function toBase64(input) {
  return Buffer.from(input, 'utf-8').toString('base64')
}

export function fromBase64(encoded) {
  return Buffer.from(encoded, 'base64').toString('utf8')
}
Run Code Online (Sandbox Code Playgroud)


Chi*_*ain 9

React Native有一个binaryToBase64工具,它接受ArrayBuffer进行base64转换:

var utf8 = require('utf8');
var binaryToBase64 = require('binaryToBase64');

var text = 'foo © bar  baz';
var bytes = utf8.encode(text);
var encoded = binaryToBase64(bytes);
console.log(encoded);
// Zm9vIMKpIGJhciDwnYyGIGJheg==
Run Code Online (Sandbox Code Playgroud)

您可能需要安装该utf8软件包,因为它已从 0.54版本的React Native删除:

npm install --save utf8
Run Code Online (Sandbox Code Playgroud)

  • 如何从base64字符串中获取utf-8? (2认同)

ant*_*ine 9

接受的答案和 Buffer 方法都不适合我。以下是截至 2019 年 1 月的效果

yarn add react-native-base64
Run Code Online (Sandbox Code Playgroud)

然后

import base64 from 'react-native-base64'
base64.encode('Some string to encode to base64');
Run Code Online (Sandbox Code Playgroud)

  • 你的 React Native 版本是什么?因为这个其他答案适用于我(`v0.60.3`)并且不需要额外的依赖项:/sf/answers/3706499051/ (2认同)
  • 那时我正在使用“v0.57.8”。如果 Buffer 的答案现在有效那就太好了! (2认同)