Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Henrique Barcelos

UTF8_decode em javascript!

Recommended Posts

E ae pessoal, td beleza???

 

Fazia 2 semanas que eu estava me debatendo aqui pra resolver um problema d acentuação:

 

Se usava o charset=ISO-8859-1 os acentos no banco de dados eram cadastrados corretamente, mas os alerts não os exibiam corretamente

 

Se usasse o charset=utf-8, acontecia o contrario...

 

Depois de muita procura eu finalmente achei a solução: uma função em javascript que tem o mesmo efeito da utf8_decode do php...

 

Ae eu posso dxa o charset=ISO-8859-1 pra não dar problemas com o banco de dados e utilizo essa função nos alerts ^_^

 

function utf8_decode(str_data){
		// http://kevin.vanzonneveld.net
		// +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
		// +	  input by: Aman Gupta
		// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// *	 example 1: utf8_decode('Kevin van Zonneveld');
		// *	 returns 1: 'Kevin van Zonneveld'
		
		var tmp_arr = [], i = ac = c = c1 = c2 = 0;
		
		while (i < str_data.length) {
			c = str_data.charCodeAt(i);
			if (c < 128) {
				tmp_arr[ac++] = String.fromCharCode(c);
				i++;
			}
			else 
				if ((c > 191) && (c < 224)) {
					c2 = str_data.charCodeAt(i + 1);
					tmp_arr[ac++] = String.fromCharCode(((c & 31) << 6) | (c2 & 63));
					i += 2;
				}
				else {
					c2 = str_data.charCodeAt(i + 1);
					c3 = str_data.charCodeAt(i + 2);
					tmp_arr[ac++] = String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
					i += 3;
				}
		}
		
		return tmp_arr.join('');function utf8_decode(str_data){
		// http://kevin.vanzonneveld.net
		// +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
		// +	  input by: Aman Gupta
		// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// *	 example 1: utf8_decode('Kevin van Zonneveld');
		// *	 returns 1: 'Kevin van Zonneveld'
		
		var tmp_arr = [], i = ac = c = c1 = c2 = 0;
		
		while (i < str_data.length) {
			c = str_data.charCodeAt(i);
			if (c < 128) {
				tmp_arr[ac++] = String.fromCharCode(c);
				i++;
			}
			else 
				if ((c > 191) && (c < 224)) {
					c2 = str_data.charCodeAt(i + 1);
					tmp_arr[ac++] = String.fromCharCode(((c & 31) << 6) | (c2 & 63));
					i += 2;
				}
				else {
					c2 = str_data.charCodeAt(i + 1);
					c3 = str_data.charCodeAt(i + 2);
					tmp_arr[ac++] = String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
					i += 3;
				}
		}
		
		return tmp_arr.join('');

só que não funciona direto, tem q armazenar o texto do alert numa variavel usando a função e depois alertar essa variavel...

 

var alerta = utf8_decode("Olá, seja bem vindo");
alert(alerta);

 

flws ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.