Audio::TagLib::String - A wide string class suitable for unicode
use Audio::TagLib::String; my $i = Audio::TagLib::String->new("blah blah blah"); print $i->toCString(), "\n"; # got "blah blah blah"
This is an implicitly shared wide string. For storage it uses Audio::TagLib::wstring, but as this is an implementation detail this of course could change. Strings are stored internally as UTF-16BE. (Without the BOM (Byte Order Mark))
The use of implicit sharing means that copying a string is cheap, the only cost comes into play when the copy is modified. Prior to that the string just has a pointer to the data of the parent String. This also makes this class suitable as a function return type.
In addition to adding implicit sharing, this class keeps track of four possible encodings, which are the four supported by the ID3v2 standard.
The four types of string encodings supported by the ID3v2 specification. ID3v1 is assumed to be Latin1 and Ogg Vorbis comments use UTF8.
qw(Latin1 UTF16 UTF16BE UTF16LE UTF8)
keys %Audio::TagLib::String::_Type lists all available values also.
binmode STDOUT, ":utf8" to display UTF8 string.
Constructs an empty String.
Make a shallow, implicitly shared, copy of $s. Because this is implicitly shared, this method is lightweight and suitable for pass-by-value usage.
Makes a deep copy of the data in $v.
NOTE This should only be used with the 8-bit codecs Latin1 and UTF8, when used with other codecs it will simply print a warning and exit.
Constructs a String from the data $data encoded by $encode.
Constructs a String from the data $data.
NOTE $data should be the internal format of Perl. It will check the UTF8 to determine the encode to use(Latin1 or UTF8 in this case).
Destroys this String instance.
If $unicode is false (the default) this will return a Latin1 encoded string. If it is true the returned string will be UTF-8 encoded and UTF8 flag on.
WARNING Differ from C/C++, the PV will contain a copy of the string returned by C/C++ code.
Returns an iterator pointing to the beginning of the string.
Returns an iterator pointing to the end of the string (the position after the last character).
Finds the first occurance of pattern $s in this string starting from $offset. If the pattern is not found, -1 is returned.
Extract a substring from this string starting at $position and continuing for $n characters.
Append $s to the current string and return a reference to the current string.
Returns an upper case version of the string.
WARNING This only works for the characters in US-ASCII, i.e. A-Z.
Returns the size of the string.
Returns true if the string is empty.
Returns true if this string is null -- i.e. it is a copy of the String::null string.
NOTE A string can be empty and not null.
Returns a ByteVector containing the string's data. If $type is Latin1 or UTF8, this will return a vector of 8 bit characters, otherwise it will use 16 bit characters.
Convert the string to an integer.
Returns a string with the leading and trailing whitespace stripped.
Converts the base-10 integer $n to a string.
Returns the character at position $i. Encodes by UTF8 and sets UTF8 on if the returned character is a wide character.
Performs a shallow, implicitly shared, copy of $s, overwriting the String's current data.
Performs a deep copy of the data in $d.
Copies $data into current String. Check UTF8 flag to determine the encode to use (Latin1 or UTF8).
Returns a static null string provided for convenience.
None by default.
== != += < >
Dongxu Ma, <email@example.com>
Copyright (C) 2005 by Dongxu Ma
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.