Интересует именно «internal representation of string type».
Читаю это. Не понимаю, например, про Go. Где-то написано, что используется UTF-8, где-то UTF-16.
Помогите составить список языков, которые используют именно UTF-8.
Именно «internal representation of string type» в utf8 очень спорное решение, т.к. оно все же для передачи, а не представления данных. И примеры в этом топике вовсе не говорят, что рантаймы внутри представляют строки в utf8.
И примеры в этом топике вовсе не говорят, что рантаймы внутри представляют строки в utf8.
A string is a sequence of Unicode scalar values encoded as a stream of UTF-8 bytes. All strings are guaranteed to be validly encoded UTF-8 sequences.
Я про примеры на Go и Vala (примеров на расте тут вообще не было). И я не утверждаю, что эти языки не представляют строки внутри как utf8, я утверждаю, что примеры этого одназначно не доказывают.
Не понимаю, например, про Go. Где-то написано, что используется UTF-8, где-то UTF-16.
В Go строки могут быть в любой кодировке и стандартный индекс по байтам. Строка представлена в памяти как простая последовательность байт (в отличие, например, от Python 3). См. https://play.golang.org/p/hvVOXpTAXH
Однако выражение range, как в примере beastie, ожидает, что строки будут в UTF-8 и итерирует по кодам UTF-32. Стандартная библиотека тоже предполагает, что string в UTF-8. Пакет unicode/utf16 работает со слайсами (как бы массивами) uint16.