2015-08-28 44 views
0

我需要在NodeJs中执行Java函数。什么是NodeJs相当于Java getBytes()

string.getBytes() 

在Java中,这将字符串转换为字节数组byte[]

+1

也许iconv模块可以提供帮助吗?你需要什么编码?基于Unicode的东西可能不会太困难(你可以用string.codePointAt()获取代码点)? – Thilo

+0

由于许多熟练的Javascript/nodejs开发人员可能不了解Java,因此您可能会描述'getBytes()'的功能,因此我们更多的人可能会知道哪些nodejs功能可以替代。 – jfriend00

+1

看看这个:http://stackoverflow.com/questions/6226189/how-to-convert-a-string-to-bytearray – Thilo

回答

0

你可以尝试做同样的

Class Method: Buffer.byteLength(string[, encoding])# 
  • string字符串
  • 编码字符串,可选,默认: 'UTF-8'
  • 返回:数

    Buffer.byteLength(str, 'utf8') 
    
0

This sh乌尔德帮助:

> s = 'あhello' 
'あhello' 
> s.split('').forEach(function(c,i) { console.log(s.charCodeAt(i) + " " + c); }); 
12354 あ 
104 h 
101 e 
108 l 
108 l 
111 o 
undefined 

// Or as one line 
s.split('').map(function(c,i) { return s.charCodeAt(i) }).reduce(function(a, b) {return a.toString(16) + " " + b.toString(16)}) 
+0

a = []; s.split('')。map(function(c,i){a.push(s.charCodeAt(i))});一个//可能会帮助更多 –

+0

虽然这不是一个真正的字节数组。它是一个整数数组(值大于255,如你所示)。 – Thilo

0

@Eranga Kapukotuwa我不知道你是否还需要为这个问题的答案,但我用下面的代码得到这个工作,我的一个项目完成,它完美的作品。

var getBytes = function (string) { 
var utf8 = unescape(encodeURIComponent(string)); 
var arr = []; 

for (var i = 0; i < utf8.length; i++) { 
    arr.push(utf8.charCodeAt(i)); 
} 

console.log('Array ', arr); 

return arr; 
}