使用Meteor在文件中读取时获取替换字符(65533)

时间:2015-07-07 22:43:32

标签: javascript meteor character-encoding

在我的Meteor应用程序中,我有一个读取.csv文件并将其插入集合的方法。此文件是西班牙语,因此包含ó(ó)等字符。在该方法中,我正在运行console.log(row[3][9] + ' is ' + row[3].charCodeAt(9));,除非它是一个特殊字符,否则它会正常工作,在这种情况下,我总是在控制台中获得"? is 65533"。我对字符编码方法不太熟悉,但是由于它来自.csv文件,所以我很困惑为什么会对它进行编码。

文件样本:

  

1,1,1,“Apreciacióndedirectivos,profesores,estudiantes y personal administrativo sobre la claridad en los objetivos del programa”,Encuesta Realizada ,,,,,,, 4.30,b   1,1,2,“Apreciacióndedirectivos,profesores,estudiantes,visitantes y personal administrativo de la capacidad que ha demostrado el programa a lo largo de su trayectoria para lograr dichos objetivos”,Encuesta Realizada ,,,,,,, 3.97, v   2,2,3,Existencia de evidencia de los procesodeseleccióndeestudiantes con criterios bien definidos enlosúltimos5años。 ,ActasdeadmisiónReglamentogeneral reglamento estudiantil Documento Maestro ,,,,,,, 4.54,b   2,2,4,Existencia de evidencia de estrategias implementadas enlosúltimos5añosparaasegurarunnúmerodeestudiantes adecuado que le den sostenibilidad al programa。,Páginawebfolletos Resoluciones de las universidades de apoyos a estudiantes Solicitudes al consejo de Rectores ,, ,,,,, 4.00,b

用于上传和读入文件的JavaScript方法:

Meteor.methods({
	'uploadFile':function(fileid,filename){
		var fs = Meteor.npmRequire('fs');
		var file = Uploads.find({_id:fileid});
		var listNewAll = [];
		Meteor.setTimeout(function(){
			var filepath = '/imports/uploads' + '-' + fileid + '-' + filename;
			CSV().from.stream(
			fs.createReadStream(filepath),
			{'escape':'\\'})
			.on('record', Meteor.bindEnvironment(function(row,index){
				fullList.insert({
					'Factor':row[0],
					'Caracteristica':row[1],
					'Number':row[2],
					'Indicador':row[3],
					'Razon':row[4],
					'UA':row[5],
					'UC':row[6],
					'UM':row[7],
					'UCe':row[8],
					'UCo':row[9],
					'US':row[10],
					'Tot':row[11],
					'Color':row[12],
				})
				console.log(row[3][9] + ' is ' + row[3].charCodeAt(9));
				console.log(row[3].charCodeAt(9) == 243);
			}, function(error){
				console.log(error);
			}))
			.on('error', function(err){
				console.log(err);
			})
			.on('end', function(count){
				
			})
		},100);
		
	}
})

0 个答案:

没有答案