Novidades do C# 11: UTF-8 String Literals

Renato Groffe
2 min readNov 27, 2022

--

O C# 11 também traz melhorias na manipulação de strings no formato UTF-8, contando agora com o sufixo u8 que pode ser adicionado ao final de uma sequência de texto que necessite ser representada neste padrão.

No exemplo a seguir temos um exemplo de uso desta nova capacidade:

var parte1 = "Exemplo utilizando Utf-8 no C# 11 "u8;

Uma string literal baseada em UTF-8 será então tratada como um conjunto de bytes baseado no tipo ReadOnlySpan<byte>, conforme podemos visualizar na declaração da variável parte1 a partir de um exemplo no Visual Studio Code:

A versão completa com esse exemplo está na próxima listagem, com as variáveis parte1 e parte2 fazendo uso do sufixo u8. O conteúdo das mesmas será em seguida agrupado e salvo em um arquivo de texto (.txt), com isto acontecendo por meio de uma instância do tipo FileStream:

Na próxima imagem podemos visualizar um exemplo de arquivo criado ao executar este código, com o conteúdo do mesmo possuindo como encoding o padrão UTF-8:

Clique nesta imagem para visualizar com uma melhor resolução

Este exemplo também foi disponibilizado no GitHub:

https://github.com/renatogroffe/CSharp11-Utf8StringLiterals

Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker