Javascript 将字符串转化为kb格式

标签 javascript string byte

我是 javascript 的新手,我只是想将字符串转换为像我这样的人可以阅读的格式。这是我正在尝试做的一个例子......

string2size(字符串){ //一些很棒的编码我不知道如何制作 返回 awesomeAnswer

现在返回值应该给我 56 字节或 12kb 或 1mb,具体取决于字符串的大小。

所以如果字符串是... string = "有一个老太婆住在一只鞋里"; 那么 string2size(string) 应该返回类似 3kb 的内容。

现在我知道有一个 utf8 讨论,我不会反对将它添加到函数中。

我已经尝试过谷歌和雅虎搜索,但他们谈论使用 php,但我真的需要它用于 javascript。我非常感谢任何人的时间。 -泰斯克

最佳答案

首先列出您要使用的单位。例如:

// 1024-based units. Kibibyte, Mebibyte etc.
//
var BINARY_UNITS= [1024, 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi', 'Yo'];

// SI units, also Hard Disc Manufacturers' rip-off kilobytes
//
var SI_UNITS= [1000, 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'];

然后创建一个函数来查找并除以一个数字的最大合适单位:

function unitify(n, units) {
    for (var i= units.length; i-->1;) {
        var unit= Math.pow(units[0], i);
        if (n>=unit)
            return Math.floor(n/unit)+units[i];
    }
    return n; // no prefix, single units
}

然后调用长度:

var desc= 'File, '+unitify(content.length, UNITS_BINARY)+'B';
desc+= ' or in SI, '+unitify(content.length, UNITS_SI)+'B';

// eg. File, 977KiB or in SI 1MB

我不确定你对 UTF-8 的意思,但如果你想找出编码为字节的字符串的长度,你必须自己将该字符串编码为 UTF-8。幸运的是,有一个廉价的技巧可以在 JavaScript 中获得 UTF-8 编码器:

var bytes= unescape(encodeURIComponent(chars));
alert(unitify(bytes, BINARY_UNITS)+'B');

关于Javascript 将字符串转化为kb格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792327/

相关文章:

javascript - 尽管使用 .on(),动态创建的元素不会触发事件

C 字符串搜索获取字符串的一部分

c# - 在 C# 中使用分隔符连接字节数组

python - 将 str 中的索引转换为 bytearray 中的索引

javascript - 在提交时在新选项卡中打开表单点击

javascript - 如何在 jQuery 中单击并按住时更改 td 颜色

javascript - 使用PHP将表数据保存为CSV格式

string - Ada 字符串到枚举的转换

javascript - 难倒 : IE8 Message: Expected identifier, 字符串或数字行:82 字符:1 代码:0

python 字节到 C 数组(如 xxd 程序)