|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.01.2016, 19:59 | #1 |
Новичок
Джуниор
Регистрация: 21.01.2016
Сообщений: 1
|
Vba в начале строки вставляет 3 непечатных символа
Собственно, их я увидел через hex редактор. Этими символами являются: ef это "п",bb это "»",bf это "ї". Для меня они очень критичны.
Изначально строку пишу через WriteLine("блабла") в уникоде, затем получившийся файл переконвертирую в utf-8. Переконвертирование делаю так: SpecialSymbols(0) = 239 SpecialSymbols(1) = 187 SpecialSymbols(2) = 191 path = ParentFolder & "IoMap.iom" Set oStream = New ADODB.Stream oStream.Type = 2 oStream.Charset = "unicode" oStream.Open oStream.LoadFromFile ("C:\BR_Vedenskoe\...\IoMap.iom" ) str = oStream.ReadText() oStream.Close For Count = 0 To 2 str2 = Replace(str, Chr(SpecialSymbols(Count)), "") Next Count str2 = Right(str, Len(str) - 1) oStream.Charset = "utf-8" oStream.Open oStream.WriteText (str2) oStream.SaveToFile "C:\BR_Vedenskoe\...\IoMapUTF-8.iom", adSaveCreateOverWrite oStream.Close Собственно я вообще на vba никогда не кодил. Могут гуру помочь разобраться откуда берутся эти символы и как их убрать? Видимо они берутся от WriteLine("")? |
21.01.2016, 21:51 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
3 символа - это BOM (byte order mark)
попробуйте эти функции для перекодировки http://excelvba.ru/code/SaveTextToFile http://excelvba.ru/code/encode по первой ссылке есть кодировки utf-8noBOM и utf-8 utf-8noBOM - это без этих 3 символов, а utf-8 - с 3 символами в начале а под unicode может пониматься как utf-16, так и utf-8 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Написать процедуру подобно insert, которая после каждого вхождения символа C в строку S1 вставляет строку S2 | azalia | Паскаль, Turbo Pascal, PascalABC.NET | 17 | 09.01.2014 12:39 |
Известно, что в начале строки s находятся ... | hunter129 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 11.11.2013 22:43 |
Вставить текст в мемо в начале строки | glebast | Помощь студентам | 2 | 08.09.2012 19:59 |
Пробелы в начале строки | nats | C# (си шарп) | 0 | 26.07.2011 16:10 |
В чем проблема появления символа & в начале каждого заголовка итема созданного в рунтайте раздела меню? | SkAndrew | Общие вопросы Delphi | 17 | 10.08.2008 21:44 |