Q:

Erro de codificação de texto html na MySQL

Estou tendo problema ao enviar textos acentuados ao banco de dados como palavras com Ç Ã etc.
Digamos que eu envie um texto assim Isso e uma ação de postagem para você
O que acontece e que só envia ata Isso e uma a o resto do texto não esta sendo enviado esta dando erro de codificar os textos. Como posso corrigir isso
CREATE TABLE IF NOT EXISTS `news` (
  `id` int(255) NOT NULL AUTO_INCREMENT,
  `titulo_url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `titulo` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `noticia` text COLLATE utf8_unicode_ci NOT NULL,
  `data` date NOT NULL,
  `hora` time NOT NULL,,
  `avatar` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
  `autor` char(20) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `tituloUnico` (`titulo`),
  UNIQUE KEY `urlUnica` (`titulo_url`),
  KEY `colunasIndexadas` (`id`,`titulo_url`,`autor`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

Não sei o motivo de estar dando esse erro no formulário de envio.

A:

Seu problema está no collate e Charset.
Se o charset for Latin1, use o collate  latin1_swedish_ci
Se o charset for UTF8, use o collate utf8_general_ci
Você pode alterar usando os comandos:
ALTER DATABASE `sua_base` CHARSET = Latin1 COLLATE = latin1_swedish_ci;

ou
ALTER DATABASE `sua_base` CHARSET = UTF8 COLLATE = utf8_general_ci;

Assim, a acentuação será enviada e interpretada corretamente pelo seu banco de dados.

