Todos os procedimentos estão corretos até agora, porém, mesmo com o uso do Bootstrap, não estou conseguindo visualizar letras com acentor e nem o 'Ç'. Será que está faltando alguma biblioteca ou é um problema com o uso do Scala?
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!
Todos os procedimentos estão corretos até agora, porém, mesmo com o uso do Bootstrap, não estou conseguindo visualizar letras com acentor e nem o 'Ç'. Será que está faltando alguma biblioteca ou é um problema com o uso do Scala?
Oi Victor, tudo bem?
Esse problemas geralmente são por conta do charset da página.
Para uma resposta HTTP baseada em texto, é muito importante definir o charset. O Play manipula isso para você e usa o utf-8 por padrão.
Exemplo para mudar o charset:
public Result index() {
return ok("<h1>Hello World!</h1>", "iso-8859-1").as("text/html; charset=iso-8859-1");
}
Ok. Mas como vou conseguir configurar isso aqui:
@(formulario: Form[Produto])
@import b3.vertical.fieldConstructor
@main("Cadastro de produto") {
@b3.form(routes.ProdutoController.salvaNovoProduto){
<h1>Cadastrar novo produto</h1>
@b3.text(formulario("titulo"), '_label -> "Título")
@b3.text(formulario("codigo"), '_label -> "Código")
@b3.text(formulario("tipo"), '_label -> "Tipo")
@b3.textarea(formulario("descricao"), '_label -> "Descrição")
@b3.number(formulario("preco"), '_label -> "Preço")
@b3.submit('class -> "btn btn-primary") { Cadastrar }
}
}na opção Descrição e Preço, por exemplo. Ou devo mudar algo no main?
@(title: String)(content: Html)
<!DOCTYPE html>
<html lang="en">
<head>
<title>@title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("bootstrap/dist/css/bootstrap.min.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/cna.png")">
</head>
<body>
<header class="navbar navbar-default">
<div class="container" role="presentation">
<ul class="nav navbar-nav navbar-right">
<li><a href="@routes.ProdutoController.formularioNovoProduto">Novo produto</a></li>
</ul>
</div>
</header>
<main class="container">
@content
</main>
<script type="text/javascript" src="@routes.Assets.versioned("bootstrap/dist/js/bootstrap.min.js")"></script>
</body>
</html>
Para exibir uma página HTML o navegador precisa saber o conjunto de caracteres usado na página.
Isso é especificado com a tag :
<meta charset="iso-8859-1">Dentro da sua tag head:
<head>
<title>@title</title>
<meta charset="iso-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("bootstrap/dist/css/bootstrap.min.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/cna.png")">
</head>
Infelizmente não funcionou. Continuo vendo " � " aonde deveria estar um " é " ou um " ç ". No meu Meta eu já tinha feito a mesma alteração. Até usei esse exemplo que vi online e nada.
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">O que deve estar errado então?