Publicidade

LuanMartinsTI

Retirar acentos de string

Pessoal é o seguinte, tenho em um aplicativo o controle de flode, e para verificar as palavras digitadas, primeiro eu dou um replace em todos os espaços do texto e em caracteres especiais e verifico se alguma pessoa digitou uma palavra proibida, exemplo um xingamento "pu...." mas eu enfrento um grande problema, se a pessoa acentuar a palavra eu não consigo pegar no script, eu já vi diversas vezes na internet varios codigos que tiram o acento, realmente eles tiram sim, mas add um simbolo na frente, e de forma alguma consigo tirar o simbolo na verificação com o replace, ex, se eu quero proibir a palavra imasters, ai a pessoa digita imásters eu não consigo, e se passar na função que tira a acentuação, ele vai exibir no console assim: ima!ster, e no meu replace tem la que ("!",""), mas mesmo assim não tira, qual seria minha solução?

 

byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(texto);
texto = texto.Replace("-", "").Replace("á", "").Replace("^", "").Replace("/", "").Replace("_", "").Replace(".", "").Replace("*", "").Replace("'", "").Replace("#", "").Replace("@", "").Replace("!", "").Replace(",", "").Replace("?", "").Replace("`", "").Replace("=", "").Replace("+", "").Replace("\\", "").Replace("{", "").Replace("}", "").Replace("[", "").Replace("]", "").Replace("(", "").Replace(")", "").Replace(" ", "");

 

já tentei também colocar no replace vogais já acentuada, porem não funciona, tipo assim: ("á","")

 

alguém pode me ajudar?

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
public static string RemoverAcentos(this string texto)
{
   if (string.IsNullOrEmpty(texto))
       return String.Empty;

   byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(texto);
   return System.Text.Encoding.UTF8.GetString(bytes);
}

"ábaéóâ".RemoverAcentos();

 

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, itlpps disse:

public static string RemoverAcentos(this string texto)
{
   if (string.IsNullOrEmpty(texto))
       return String.Empty;

   byte[] bytes = System.Text.Encoding.GetEncoding("iso-8859-8").GetBytes(texto);
   return System.Text.Encoding.UTF8.GetString(bytes);
}

"ábaéóâ".RemoverAcentos();

 

isso não funciona do jeito que eu quero, já testei, faz exatamente o que eu disse, ele tira o acento mas add um simbolo na frente, então não ajuda.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que símbolo? 

Uso esse código em um sistema, funciona perfeitamente...

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora

  • Próximos Eventos

  • Conteúdo Similar

    • Por OCorlleone
      Eu consegui por meio de fóruns esse código que funcionou muito bem da forma que eu desejava, porém eu estava fazendo esse código em VB.NET.
      Porém eu preciso fazer com que esse código funcione da mesma forma em C#
       
      Eu tentei de várias formas alterar para funcionar em C#, mas sem sucesso.
       
      Esse é o código em VB.NET que preciso transpassar para C#
      'Alterar cor da linha com base no resultado obtido através da quinta coluna da tabela (Status) Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then 'Indice da sua coluna status Dim myVal As String = e.Row.Cells(5).Text If myVal = "Completed" Then e.Row.BackColor = System.Drawing.Color.Green ElseIf myVal = "Delayed" Then e.Row.BackColor = System.Drawing.Color.Red ElseIf myVal = "In Progress" Then e.Row.BackColor = System.Drawing.Color.Yellow ElseIf myVal = "New" Then e.Row.BackColor = System.Drawing.Color.White End If End If End Sub  
      Esse código funciona da seguinte forma:
       
      Ele pega o valor dentro do campo de uma determinada tabela, localizada na sexta coluna. E faz a alteração da cor da linha da tabela para a cor designada, para haver diferenciação.
      Aguardo por ajuda.
    • Por OCorlleone
      Estou com dificuldades para fazer com que meus dados sejam carregados na página junto com o carregamento.
      Com o GridView eu consigo fazer com que ele fique fixo, mas não é da forma que preciso que ocorra, preciso de uma função para que ele carregue os dados, que por momento eu tenho via Access, e popule o GridView com os dados carregados.
       
      Esse é o código da minha página no momento.
      Lembrando que preciso fazer com que o GridView receba os dados ao carregar a página.
      <%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site1.Master" CodeBehind="MainView.aspx.vb" Inherits="DosimetryASPNET_WebApplication.MainView" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <asp:Label ID="headerLabel" runat="server" Height="60px" Width="100%" BackColor="#000099"> <asp:Image ID="Image1" runat="server" Height="60px" ImageUrl="~/Images/tetra-pak-mottostamp-logoype.png" Width="70px" /> </asp:Label> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" runat="server"> <asp:Button ID="btnMenuView" runat="server" Text="Return to Menu" Width="200px" OnClick="btnMenuView_Click"/> <br /> <br /> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder4" runat="server"> <br /> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> </asp:GridView> </asp:Content>  
      Espero ter conseguido ser claro com minha dúvida.
      Aguardo por ajuda.
    • Por OCorlleone
      Olá, tenho uma tabela que puxo de um arquivo Access para ser visualizada dentro de um DataGridView.
       
      Preciso desenvolver um método para alterar a cor de cada linha, cada linha com uma cor distinta de acordo com o valor de uma célula.
       
      Minha tabela possui as seguintes colunas:
      BatchID - Product - BachtSize - Priority - StartReq - Status
       
      Os campos que serão analisados estão na coluna "Status"
      Os valores variam entre: Completed(Verde), Delayed(Vermelho), In Progress(Amarelo), New(Branco)
       
      Baseado nos valores que podem ser encontrados, preciso de ajuda para desenvolver um método que altere a linha de acordo com o valor.
       
      Esse é todo o código que estou utilizando.
      Public Class MainView     Private Sub btnMainViewCarregarDados_Click(sender As Object, e As EventArgs) Handles btnMainViewCarregarDados.Click          Try             Dim dt As New NorthwindDataSet.All_BatchesDataTable              Using da As New NorthwindDataSetTableAdapters.All_BatchesTableAdapter                  da.Fill(dt)             End Using             DataGridView1.DataSource = dt.DefaultView             Dim cma As CurrencyManager = DirectCast(BindingContext(dt.DefaultView), CurrencyManager)             AddHandler cma.CurrentChanged, AddressOf SecondaryTable              SecondaryTable(Me, Nothing)         Catch ex As Exception             MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error)         End Try     End Sub     Public Sub SecondaryTable (ByVal sender As Object, ByVal e As EventArgs)         Try             Dim dv1 = DirectCast(DataGridView1.DataSource, DataView)             Dim dv2 As New DataView(dv1.Table)             Dim cma = DirectCast(BindingContext(dv1), CurrencyManager)                         'define o filtro pelo nome e a seleção do nome no primeiro datagridview             dv2.RowFilter = "BatchID = '" & dv1(cma.Position)("BatchID").ToString & "'"                         'atribui o valor ao segundo datagridview             DataGridView2.DataSource = dv2         Catch ex As Exception             Throw ex         End Try     End Sub End Class  
      Eu sou novato com desenvolvimento ASPNET e estou me adaptando ainda.
      Peço desculpas se não conseguir ser muito claro em minha dúvida.
       
      Desde já agradeço qualquer ajuda.
    • Por rafaelsouzab
      Boa tarde,
       
      Estou desenvolvendo uma aplicação em 3 camadas e estou com uma duvida na parte do sistema que eu tenho um modelo de Tarefas, e essas tarefas possuem algumas prioridades, porem no banco de dados eu separei a tabela tarefas de prioridades, gostaria de saber se estaria fugindo muito do conceito de uma aplicação em 3 camadas se eu deixasse as propriedades das prioridades no modelo Tarefas. então basicamente esta separado e relacionado no banco de dados porem no sistema esta tudo no mesmo modelo.