Стандартный тип данных: строка расширенных символов
Синтаксис
Описание
WString является массивом фиксированного размера расширенных
символов, который никогда не переполняется, если размер известен во время
компиляции. Он не имеет дескриптора, и никогда не изменяется в
размере, если это не указатель и
Allocate/
Reallocate/
Deallocate
не используются для него.
Конец строки отмечен символом 0, так что символ нуля не должен быть частью
WString или содержимое будет усечено.
Этот тип предоставляется для поддержки нелатинских алфавитов. Любые функции
для встроенных строк, такие как
Left
будут работать с
WString также, как и любой строковой
оператор.
Кроме файлов ASCII с Unicode escape-последовательностью (\u), FreeBASIC
может разобрать UTF-8, UTF-16LE, UTF-16BE, UTF-32LE и UTF-32BE исходные
файлы.
В FreeBASIC функции текстовых файлов могут читать и записывать файлы Unicode
в различных кодировках, при условии, что
Encoding
задается при открытии файла. Текст автоматически преобразуется во внутреннюю
кодировку при чтении и преобразуется обратно в кодировку файла при записи.
SizeOf(
WString )
возвращает количество байт, используемых WString символами в текущей
платформе.
Пример
Dim As WString * 14 str1 => "hello, world"
Print str1
Print Len(str1) 'Возвращает
12, длину содержащей строки
Print SizeOf(str1) 'Возвращает 14 * sizeof(wstring), число
байт, используемых в переменной
Dim As WString Ptr str2
str2 = Allocate( 14 * Len(WString) )
*str2 = "hello, world"
Print *str2
Print Len(*str2) 'Возвращает
12, длину содержащей строки
Различия платформ
Поддержка wstrings полагается в библиотеке
RinTime
C, доступная в платформе, и внутренний формат может измениться.
- Unicode не поддерживается в версии DOS FreeBASIC. В этой версии
символ всегда занимает 1 байт и Wstrings
будет вести себя как стандартная ASCII Zstrings
- На Win32 wstrings закодированы в UCS-2 (UTF-16 LE) и символ занимает 2
байта.
- На Linux wstrings закодированы в UCS-4, и символ занимает 4 байта.
Различия диалектов
- Нет в наличии в диалекте -lang qb
, но есть псевдоним __Wstring.
Отличие от QB
См. также