2016-09-26 2 views
1

私は自分のサプライヤから取得したCSVを持っていますが、UTF-8で文字列をエンコードしました。私はそれを元に戻そうとしますが、運がないのです。あなたは(変換前の)元のファイルを持っていない場合nodejs UTF-8でエンコードされた文字列に黒の疑問符が付いています

var common    = require('./common/index.js'); 
var fs = require('fs'); 
var Iconv = require('iconv').Iconv; 
var encoding = require('encoding'); 
var iconv = new Iconv('UTF-8', 'ISO-8859-1'); 
var detectCharacterEncoding = require('detect-character-encoding'); 
common.fileHandler(
    'default.csv', 
    function(dataSet) { 
     var fileBuffer = fs.readFileSync('file.txt'); 
     var charsetMatch = detectCharacterEncoding(fileBuffer); 
     console.log(charsetMatch); 
     console.log(encoding.convert(dataSet[0].description, 'UTF-8', 'ISO-8859-1')) 
    } 
) 

戻り

{ encoding: 'UTF-8', confidence: 100 } 
<Buffer c3 bd 20 53 79 6e 63 20 64 61 74 61 20 61 6e 64 20 66 61 73 74 20 63 68 61 72 67 69 6e 67 3c 62 72 2f 3e c3 bd 20 50 72 65 6d 69 75 6d 20 61 6c 75 6d 69 ...> 

任意のヘルプは大

+0

後にエンコードデータを失う場合は、あなたの文書が別のエンコード形式に一度変換したときに時々、すべての元のエンコードデータがなくなって、あなたはこれで多くを行うことはできません最後の希望でありますあなたはこのcsvの元のバージョン(まだ変換されていません)を持っていれば、適切なエンコーディングフォーマットに変換するチャンスがあります – neuronet

+0

'common.fileHandler'は何をしていますか? 'dataSet'とは何ですか?あなたは 'file.txt'のエンコーディングをcehckしますが、' default.csv'から作成された 'dataSet [0] .description'を変換しますか?この(違う)ものはどうでしょうか? – Thomas

+0

@neurnetあなたが頭の爪に当たったおかげで、私がサプライヤから受け取った実際のCSVは{encoding: 'ISO-8859-1'、confidence:29} でエンコードされています。 「ISO-8859-1」から「UTF-8」への変換、またはその逆の変換を行うことはできませんが、それを元に戻したり、カハラクターを削除することはできません。Googleのマーチャントセンター(検証後にデータをインポートします) – user5569354

答えて

2

を感謝し、あなたはすべてを試みたが、何もありませんし、あなたが常にあなたの疑問符を置き換えることができます適切なutf8文字で:)

疑問符をコピーしてあなたのコードに貼り付けてください(あなたのエディターでコピーしてください)

someContent.replace('paste_question_mark_here','ą'); 

これがあれば、あなたは変換

関連する問題