Я использую API Zemanta, который принимает до 8 КБ текста за звонок. Я извлекаю текст для отправки в Земанта с веб-страниц с помощью JavaScript, поэтому я ищу функцию, которая усекает мой текст ровно в 8 КБ.Использование JavaScript для усечения текста до определенного размера (8 КБ)
Zemanta должен сделать это усечение самостоятельно (то есть, если вы отправите его более крупную строку), но мне нужно немного переместить этот текст перед вызовом API, поэтому я хочу сохранить полезную нагрузку как маленькую возможное.
Можно ли предположить, что 8 КБ текста составляет 8 192 символов, и соответственно усекать? (1 байт на символ, 1024 символа на КБ, 8 КБ = 8 192 байта/символов) Или это неточно или верно только при определенных обстоятельствах?
Есть ли более элегантный способ усечения строки на основе фактического размера файла?
Возможно, вам захочется проверить, имеет ли текст, с которым вы имеете дело, определенную кодировку, например. UTF-8, ASCII и т. Д.? Если вы уверены, что текст содержит только однобайтовые символы, усечение будет более простым. Вы отделите некоторую гибкость. Что касается Zemanta рассматривает 8KB как 8192 байта или 8000 байт, почему бы вам не проверить его самостоятельно? –
Спасибо, o.k.w.Я думаю, что Доминик прав, что этот текст (вероятно, UTF-8) потенциально займет несколько байтов на символ, поэтому измерение на основе количества символов будет невозможно. – Bungle