|
Холивара тред ( переименовано с "Срочно нужна помощь " )
Нужно срочно плизз, сори что не в той теме, но реально срочно.
Народ можно ли в js на клиенте, узнать сколько байт весит строка ? |
cyber,
Ты знаешь какая кодировка? Если юникод то 2 байта * кол во символов Ну а так js не предоставляет апишку для управления памятью |
Цитата:
|
Цитата:
Я уже нагуглил ответ на твой вопрос. У тебя гугл сломался? http://stackoverflow.com/questions/2...ascript-string https://gist.github.com/mathiasbynens/1010324 Диапазоны Unicode |
Цитата:
function string_size(text) { var size = text.length, byte = text.match(/[^\x00-\xff]/g) ; if (byte) size += byte.length; return size; } alert(string_size('привет')); |
Примитивы строк в JS всегда используют UTF-8.
Ну вообще ответ на вопрос: да, конечно можно, т.к. строка - это простой числовой массив, т.е. занимаемая память = кол-во элементов * память одного элемента PS: ща залез в стандарт и понял, что наврал :) UTF-16, а не UTF-8 :) |
Цитата:
Цитата:
|
народ всем ОГРОМНОЕ спасибо.
Цитата:
|
есть у js API Typed Arrays
если не ошибаюсь, с помощью него можно взвесить любые данные предварительно перегнав в бинарные данные Кто-нибудь работал с этим API? Объясните, как это все работает? А именно, зачем столько видов буфера: Int8Array 1 8-bit twos complement signed integer signed char Uint8Array 1 8-bit unsigned integer unsigned char Uint8ClampedArray 1 8-bit unsigned integer unsigned char Int16Array 2 16-bit twos complement signed integer short Uint16Array 2 16-bit unsigned integer unsigned short Int32Array 4 32-bit twos complement signed integer int Uint32Array 4 32-bit unsigned integer unsigned int Float32Array 4 32-bit IEEE floating point number float Float64Array 8 64-bit IEEE floating point number double и какой из них выбрать? Есть еще BLOB с ним понятно, но он менее поддерживаемый.. |
Цитата:
Цитата:
alert(new Blob(['привет']).size); http://www.javascripture.com/Blob |
Часовой пояс GMT +3, время: 19:01. |
|