Сжатие строки области - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь сохранить длинные строки в Realm (возможно, превышающий их предел в 16 МБ).Чтобы уменьшить их размер, я пытаюсь использовать инструмент lz-string для достижения этой цели.Однако, когда я пытаюсь сохранить строку в Realm, я получаю следующую ошибку:

[Error: basic_string::resize]

Вот текст перед сжатием:

Lorem ipsum dolor sit amet, consecteturжадный элит.Просьба о том, что у него нет никаких проблем.Vivamus imperdiet nisi eu quam condimentum, nec porttitor magna blandit.Mauris arcu leo, euismod sed tortor id, elementum congue nibh.Аликвам Эрат Волутпат.Donec tempor magna eget ultricies vestibulum.Morbi ac turpis aliquet nibh rutrum auctor vitae id quam.Меценат вел нун эрат.Vestibulum vulputate mauris у neque faucibus iaculis.Vivamus luctus, nunc quis maximus pellentesque, nisl sapien coequat sapien, id vestibulum nulla quam sit amet metus.Aliquam vel varius erat.Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Etiam fermentum sit amet lectus quis pharetra.Duis tempor pretium mi quis dapibus.Donec lobortis justo ex.Maecenas dapibus odio non urna maximus pretium.Vivamus et convallis odio.

Sed sed molestie lectus.Nam et diam et lectus sagittis sagittis ornare et sem.Последовательный глагол nunc eu libero hendrerit pharetra.Aliquam ac tempus massa.Donec Sed Dolor Tristique, Concectetur Nunc Nec, Fringilla Orci.Proin lobortis ipsum vel lorem aliquet posuere.Praesent dapibus metus iaculis, aliquet tortor eget, blandit sem.Vivamus Eleifend Concetetur Ullamcorper.Suspendisse elementum diam libero, eu vestibulum arcu sagittis nec.Etiam в pellentesque augue, Vel Iaculis Dolor.Cras quis dictum urna.Ut ultricies aliquet arcu porttitor.В «Пуре Эгет экс эг маттис портиттор ут конга масса».Duis sagittis nisl elit, id mattis magna pulvinar a.

Целое число rhoncus purus.Ut vitae orci eros.Curabitur ullamcorper massa id risus efficitur и др. Exorequat.Nunc nec suscipit est. Phasellus acst ex.Etiam odio erat, ultrices in fermentum in, pretium non justo.Phasellus posuere nisl eu odio placerat, quis luctus arcu auctor.Nunc eu ligula sem.Nam non pharetra nisl.Suspendisse congue augue hendrerit, sagittis ex quis, mattis est. Aenean sed nibh vel sem tincidunt gravida vel vitae mauris.Morbi a dui sed lorem tristique accumsan ac at neque.Donec nec enim nulla.

Nullam vitae aliquam leo, eu auctor diam.Приостановить вененатис орси.Proin ut Tellus Eleifend, Finibus Erat Non, Egestas Мистер.Phasellus sed augue pulvinar, porta arcu sed, luctus felis.Suspendisse в Gravida Felis, ЕС Tempus Lectus.Phasellus imperdiet enim eget vulputate facilisis.Nunc magna Tellus, condimentum non elementum eu, faucibus et mi.Morbi nec nisl et purus sollicitudin mollis.Nam eget arcu vitae nisl tincidunt tristique id sed est. Nulla lobortis diam hendrerit nunc pretium varius eu lectus.

А вот текст после сжатия:

᐀⌠ 搞 삜 ᓀ 똠 ▀ᰌ␄ 쨁떄 疐 ׄ Č ᎔ 聨 䀘 쨀  臒 泆 䩳 奴 ඓ 『戎 㸲 è 䀀 冁 丛 曤 ⮈Ǣ # ꘁ⇰ 偩 鴈 \ u0016 熘 ಱ ⠸⯢ 刀 ᮙ䔡 鮷 휊 ಀ 櫈 온 ࢨ 瀰 죢 죢 죢 죢 谬 谬 糔 摄 摄 摄 摄 䘆 雒 눔 䘾 瀸 瀸 瀸 ₤ ₤ 嵎 ㈀ ㈀ ㈀ ㈀꒨ 㬲 "Ⳟ 鳡 ╥ᗢ∱ 飸 ꐶ 䋎 ⹊ 䖕 还 ㋵ 낕  ホ 誁 桬 ᛤ 昲 ᥢ ƀ᳡ 䠦 蜈 蛥 ⁹ 왉 ⨯ 텀산 偌 ➓೅ 쭭 䠁 ྴ 㯤 腲 㵐 ܝ ꋔ 곑 ロ 㱰 ᴢ 쀆 撎 ꒙ 邆 䞀耤 ᄈ 駰 頎 ㆛ ≍ 죨  甲 Ĉ ႋ ⨥᜻ • ➠ ⢠ 謜 춉뜠 ᪍ 챺 ؽ 褚 딦줂 䕓 凈 ợ᫜ ኔ⚹ 嫈 傹 ⩀㎠ 上 顨 挣 에 倡 ᐝ Υ 訊 憬 ஛ ᢈ챌 - 䳅 似 ⣴'ᒗ ڎꛌ⪼ 澝 Ом 뗢섛 ⡂ ꈲ 錌 咮 发  䜘 ೆ 셤  㣨 沾 㜗 㶇 趐 䙉 䦕 囙 \ u0001 䒊 ⥮ 摚 欳 癐 㴾 楉 腝 㴲 둨 ੓ 轘 梇 죱 僰 ⊬ 섏 ှ訉 簇 駃 鏨 倥 䁑 ᖱ 舰 棘 묇 袘 ⁿ∃ᐉ ‷ ୱ⨪ 骫 句 ࠨ 갓  㤄 嬄 ᪞ 超  㠂 얀 2ꃀ ㄌ 紓 蝫 ₋ᎇ 磈 \ u001c 雎 䇰  順 袆 䄔 뉙 䂦㄰ Տ ˝n˝ ሀ 㴠  髉 ␧⠤ 馥 䤒 ▍ 拘 ꠓ 븠 㫌 肺 鐮 䥰 ㉻ 븠 檜 ౸ ℃ 쌼 ȑ 䎨 髬 ✁ 묖 ꒇ⃃ 태 越 ⌠ 亖 ᗘ 죲 ᐌ⅁ ぬ ꁘ ჱ⅁⸈ 쓹 ᘉ ᇀ 奂 蒠 ⻀ 憩 蕺 ʐꤠ 꺔 ╞ 䂌 뎑 ܃ࠍ 偐 딹 ꢂ 凢 뢄  枥 蔔 灜 ་.ࠓᘲ 㬜 恄 딤 械 䢈 ˫㉉ 䠤 腤 삝 ᦛ 毚 銢 ⛒⑲ 䪒 惤 ㈱⋤ 㪩 ꬮ 莓 䈠 ⳴ 㾨 ⣮ 鎁 ଀ 좡 芏 箾 簴 ꒂ ᄔ ಀʫ 邏 ᡚ 㵥 ࣶ 偹 ń 凵 ㈀ब 슸 ꕃ✊ 蹃 䚂 ʔ 蔞 藺 ㍽ 䄛 䒰 胳 ⏧⌠ৎ ﬽ 賫 힨쵤 㖣 쓬 詽 ㍱ꠌ 븆  鐔 蛄 胊 쏜 㰐 ⌂ 頬 ᆍ 㭰 ڎ 룮 ⋋Ĉ 큺 蛜 Ԁ࡮ꭕƴ 횥 ⑦ꁢ 㘖 ਻ 狜뛦 䍰 崹 б 쁰 ేɨ 虧 ⱦ 覦 搕 ꂹ DZ 敏 鬁 ꪄ 䂇 첅 ¯H 鈄 왛 㬽 ƌ 볎 ⹖ 磀 ធ ణ 噤 泎 宓 ࡝꟡ 좩 쒋렓 㕆 锋 ꁄ 띅 藰 롪 b ピ ي 瞮 㻑 ⋄ 젂 ⚙ 緤ᮀ ᡚ 梒 鏗 礃 険 뛛둘 厛 ☂ ☂ ☂ ☂ 䨯 䨯 ჊    㤯 爂 爂 ᮀ ᮀ ᮀ ᮀ ꈮꈮ 뼗 뼗 뼗 兀 恕⎠ お ꬪἼ 鴭 ┶ 쬤 玫 ≁ 鹄 3޵ ྡྷ 썐  쏶 唤 ⇪ 蹗 ☇ϳꝑ 쬵  섀뻊 ᆁ ˩ࡘᝇ 롶 鼐 ꌀ 厾 ⍮ꄐ⪟ Ꮻⷥꭆ 갅 ൂ 둶 蠕 ਢ 䂊 ဃ 둸 䇰7 肊 ข 퐙  氣  傄 ⑤ 麋 仭 앐 ᙨ 蒜 ꄒ К ㄎ 鏠 ن 褸 ʏ 貝姇 콸긹 渧 ڑ 뎤 Ꭴ 耷 釔 급 ऩᘹ 逜 ঀ⫄ ¯u ꒩ꆈₒࡀ 찾 ํ 碧 卞  魘 쒊 蠼 㝲 ⑅ᒓ 豠 ᰱ 㶄 偘 ⠈ 愘 韫 䉗 ꄇ 쪒쳩 頃  䲼 凼 㐜 蠆 廊 㧘 璖 \ u0000

В соответствии с демонстрацией на приведенном выше сайте, текст составляет 5430 байт до сжатия и 1480 байт после, что явно меньше 16 МБ в обоих случаях.

Не уверен, чтоПод веб-сайтом подразумевается, что поддерживается только реализация локального хранилища JS по умолчанию, как это относится к локальному хранилищу.Кроме этого, кто-нибудь пробовал использовать этот инструмент сравнения с Realm и заставил его работать?Или видел эту ошибку?

1 Ответ

0 голосов
/ 03 января 2019

Прочитав API, я понял, что метод compress(string) возвращает «недопустимую» строку UTF-16. Использование compressToUTF16(string)/compressToBase64(string) и соответствующих им методов распаковки не приводит к ошибке (хотя первое не работает для меня, но это отдельная проблема).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...