Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Poblemas com acentuação

Sempre no comando stdin ao digitar uma palavra com acento por exemplo "vários" a letra com acento será ignorada, então na saída teremos "vrios", já testei todas as dicas dadas nessa aula e nas aulas anteriores e nada resolveu ainda

11 respostas

Oi, Isadora!

Por padrão, o Visual Studio Code utiliza a codificação UTF-8, que é compatível com a maioria dos caracteres, incluindo acentos. Mas, se o arquivo foi criado ou editado em outro editor com uma codificação diferente, pode haver problemas na exibição dos caracteres acentuados.

Peço que verifique a codificação do arquivo com os passos abaixo:

  1. Abra o arquivo no Visual Studio Code.
  2. No canto inferior direito da janela, observe o indicador de codificação (ex: "UTF-8").
  3. Se estiver diferente de UTF-8, clique sobre o nome da codificação e selecione a opção "Reopen with Encoding".
  4. Em seguida, escolha UTF-8 na lista.

Captura de tela do Visual Studio Code com um arquivo Dart aberto. No canto inferior direito, o indicador de codificação está marcado como 'UTF-8'. No topo da janela, o menu de seleção de codificação está aberto, destacando a opção 'Reopen with Encoding' em azul, com um retângulo vermelho em volta.

Após isso, feche e abra novamente o Visual Studio Code para garantir que tudo seja carregado corretamente.

❗ Caso o problema persista, me envie o seu código e print do comportamento inesperado no terminal.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Erro persiste

Oi Isadora!

Certo! Muito obrigada pelo print!

Agora peço que tente configurar aplicativos do Windows para usarem UTF-8 como página de código padrão, seguindo os passos abaixo:

1. Acesse as Configurações do Windows (você pode digitar configurações na aba de pesquisa windows) e clique em Hora e idioma.

2. Clique em Idioma e região

Tela de configurações do Windows 11, na seção “Hora e idioma”. O item “Idioma e região” está destacado com o número 2, e o menu lateral esquerdo mostra o item “Hora e idioma” selecionado com o número 1. A imagem mostra também o horário e data atuais, fuso horário e região configurados.

3. Em seguida, role para baixo e clique em Configurações administrativas de idioma

Tela “Idioma e região” nas configurações do Windows 11. A seção “Configurações relacionadas” está visível, com o item “Configurações administrativas de idioma” destacado com o número 3.

4. Na aba Administrativo, clique em Alterar localidade do sistema…

Janela “Região” com a aba “Administrativo” aberta. A seção “Idioma para programas não-Unicode” exibe a localidade atual como “Português (Brasil)”. O botão “Alterar localidade do sistema...” está destacado com o número 4.

5. Marque a caixa Beta: Usar Unicode UTF-8 para suporte de linguagem mundial

Janela “Configurações de Região” no Windows. Mostra o idioma atual como “Português (Brasil)” e há uma opção marcada com o texto “Beta: Usar Unicode UTF-8 para suporte de linguagem mundial”, indicada por uma seta vermelha.

Finalize reiniciando o computador

Caso o problema persista, fico à disposição!

Boa noite monalisa, eu já havia tentado essa alternativa através do auxilio do chatgpt, mas também não funcionou

Oi, Isadora!

Tente usar esta nova versão do código com o ajuste de encoding:


import 'dart:convert';
import 'dart:io';

void main() {
  print("Olá, me chamo Dart. Qual o seu nome?");
  var entrada = stdin.readLineSync(encoding: utf8);
  print("Muito prazer, $entrada");
}

Fico à disposição. Abraços e bons estudos!

Também não funcionou, to começando a achar que o problema não é o utf-8, mas oq poderia ser kk

Oi, Isadora!

Entendo sua frustração, mas compartilho que, ao lidar com desenvolvimento, às vezes surgem esses obstáculos inesperados e isso faz parte do processo de aprendizado, e encontrar soluções para esses imprevistos também é uma habilidade que vamos desenvolvendo.

Agora peço que tente forçar o terminal integrado do VS Code a trabalhar com codificação UTF-8.

  1. No VSCode, pressione Ctrl + Shift + P (ou F1);

  2. Digite e selecione: Preferences: Open Settings (JSON);

  3. Clique no arquivo Open Default Settings (JSON), adicione a seguinte linha:

    "terminal.integrated.defaultEncoding": "utf8"
    

    Se já houver uma vírgula no final da linha anterior, mantenha. Se for a última linha, não adicione vírgula no fim.

  4. Salve o arquivo (Ctrl + S);

  5. Reinicie o VS Code para garantir que a configuração seja aplicada corretamente.

  6. Feche e abra o terminal integrado (Ctrl + Shift + ou via menu Terminal > Novo Terminal);

Rode o código novamente.

Fico à disposição.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Eu não consigo editar o "Open Default Settings (JSON)"

Isadora, peço que teste o seguinte código:

import "dart:convert";
import "dart:io";

void main() {
  Utf8Codec encoding = Utf8Codec();

  print("Olá! Qual o seu nome?");
  String? nome = stdin.readLineSync(encoding: encoding);

  print("Qual sua idade?");
  String? idade = stdin.readLineSync(encoding: encoding);

  print("Olá $nome, você tem $idade anos.");
}

‼️ Mas atenção, não esqueça de salvar o arquivo antes de executar o dart run. Após inserir o código acima é necessário salvar o arquivo com CTRL + S.

  • Edite o código.
  • Salve-o.
  • Execute com o dart run.

Fico à disposição!

Tive o mesmo problema no Windows e, após diversas tentativas, encontrei uma solução eficiente utilizando o WSL para emular um ambiente Linux dentro do próprio sistema. Instalei o Ubuntu no WSL e, em seguida, configurei o Docker nesse ambiente. No Windows, instalei o Docker Desktop e ativei a integração com o WSL, apontando para a distribuição Ubuntu. Com isso, consegui acessar o Ubuntu diretamente pelo VS Code, via conexão remota com o WSL, e criar um container de desenvolvimento dedicado aos meus estudos com Dart.

Pré-requisitos no VS Code

Instale as seguintes extensões:

  1. WSL
  2. Dev Containers
  • Passo a passo (após acessar o Ubuntu via VS Code):

1. Adicionar o repositório da chave GPG do Dart:

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/dart.gpg > /dev/null

2. Adicionar a fonte do Dart:

echo "deb [signed-by=/etc/apt/keyrings/dart.gpg] https://storage.googleapis.com/download.dartlang.org/linux/debian stable main" | sudo tee /etc/apt/sources.list.d/dart_stable.list > /dev/null

3. Atualizar os repositórios:

sudo apt update

4. Instalar o Dart:

sudo apt install dart -y Criar ambiente de desenvolvimento

5. Criar a pasta de trabalho:

mkdir -p ~/workspace_dart cd ~/workspace_dart

6. Criar o Dockerfile:

nano Dockerfile

7. Conteúdo do Dockerfile:

FROM dart:stable WORKDIR /app COPY . . CMD [ "bash" ]

Salve com Ctrl+O e Enter, depois saia com Ctrl+X.

8. Criar a estrutura do Dev Container:

mkdir .devcontainer nano .devcontainer/devcontainer.json

9. Conteúdo do devcontainer.json:

{ "name": "Dart Workspace", "build": { "dockerfile": "../Dockerfile" }, "settings": { "terminal.integrated.defaultProfile.linux": "bash" }, "postCreateCommand": "dart pub get", "customizations": { "vscode": { "extensions": [ "dart-code.dart-code" ] } } }

10. Criar pasta para os aplicativos de estudo:

mkdir apps cd apps

11. Criar o primeiro projeto:

mkdir app1 cd app1

12. Criar o arquivo pubspec.yaml:

nano pubspec.yaml

13. Conteúdo do pubspec.yaml:

name: app1 description: Estudo inicial de Dart - app1 version: 1.0.0 environment: sdk: '>=3.0.0 <4.0.0'

14. Criar o arquivo Dart:

mkdir bin nano bin/app1.dart

15. Abrir o container no VS Code:

code .

Para novos projetos (app2, app3, ...), repita os passos 11 a 15 diretamente pelo terminal ou dentro do container no VS Code.

solução!

Baixando o Windows Terminal na microsoft store foi possível fazer a acentuação funcionar, mas não é possivel defini-lo como terminal padrão do vscode, portanto acho que vou rodar o código externamente mesmo, quando precisar utilizar a acentuação. Obrigada pela a ajuda Willian, quando eu estiver com mais tempo vou testar dessa forma.