Полезные статьи о разработке сайтов от вебмастера
Категория:
В один прекрасный момент мне потребовалось написать конвертатор записей, представленных в виде структурированного текстового файла, в таблицы базы данных Microsoft SQL Server с помощью скрипта на VBScript.
Все бы ничего, да кодировка исходного файла была UTF-8, в связи с чем мой скрипт никак не мог правильно прочитать структуру данных, в которой использовались словари для хранения данных. Проблема возникала из-за не правильного чтения данных по словарю, так как возникала проблема с чтением блока данных определенной длины, взятой из словаря. Всему виной была кодировка UTF-8. К сожалению VBScript по умолчанию не умеет работать с UTF-8.
Таким образом, необходимо было декодировать блок данных из UTF-8 в Unicode. Для этих целей можно использовать данную функцию на VBScript:
Function DecodeUTF8(s) Dim i, c, n, b1, b2, b3 i = 1 Do While i <= len(s) c = asc(mid(s,i,1)) If (c and &hC0) = &hC0 Then n = 1 Do While i + n <= len(s) If (asc(mid(s,i+n,1)) and &hC0) <> &h80 Then Exit Do End If n = n + 1 Loop If n = 2 and ((c and &hE0) = &hC0) Then b1 = asc(mid(s,i+1,1)) and &h3F b2 = c and &h1F c = b1 + b2 * &h40 Elseif n = 3 and ((c and &hF0) = &hE0) Then b1 = asc(mid(s,i+2,1)) and &h3F b2 = asc(mid(s,i+1,1)) and &h3F b3 = c and &h0F c = b3 * &H1000 + b2 * &H40 + b1 Else ' Символ больше U+FFFF или неправильная последовательность c = &hFFFD End if s = left(s,i-1) + chrw( c) + mid(s,i+n) Elseif (c and &hC0) = &h80 then ' Неожидаемый продолжающий байт s = left(s,i-1) + chrw(&hFFFD) + mid(s,i+1) End If i = i + 1 Loop DecodeUTF8 = s End Function
Я не являюсь автором кода, и в случае, если Вам понадобится не декодировать, а наоборот кодировать данные в UTF-8, то Вы можете найти соответствующую функцию на
Кстати, очень интересно:
Данный блог создан с целью помочь, как начинающему вебмастеру, так и опытному разработчику, в решении проблем возникающих при разработке сайтов. Здесь Вы прочитаете полезные статьи о том, как грамотно произвести SEO оптимизацию своего сайта, и найдёте важные исследования в сфере интернет-маркетинга. Научитесь писать собственные компоненты и модули для известных CMS, а также узнаете интересные методы работы с Фреймворками, CSS, HTML, jQuery и PHP. Из записей блога вы поймёте как грамотно разрабатывать макеты сайтов и что такое валидная вёрстка. БЛОГZOR – поможет Вам стать web-Гуру и понять тонкости веб-мастеринга.