Wie reagieren nicht lateinische Zeichen in AWS Lambda?

9

Update 12. Oktober:

Das Problem ist jetzt behoben. Siehe diesen Beitrag im aws-Forum für Details.

Ich schrieb eine Nodejs Funktion einfach mit einigen chinesischen Schriftzeichen. Aber es antwortet mit falschen Zeichen.

%Vor%

Das Ergebnis der Funktion wird:

%Vor%

Ich stieß auf dieses Problem, als ich eine Funktion schrieb, um einige chinesische Websites zu analysieren und ihre Seitentitel abzurufen. Ich schaffe es, sie in utf-8 umzuwandeln (ich benutzte nadel für die Anfrage), und console.log (title) zeigt diese chinesischen Zeichen korrekt an. Aber das Ergebnis von context.succeed () zeigt sich wie im obigen Beispiel. Was soll ich tun, um mit diesen nicht lateinischen Zeichen umzugehen, wenn ich auf das Ergebnis antworte?

    
Martin Lai 10.07.2015, 15:04
quelle

2 Antworten

4

Von AWS Support (10. August 2015):

  

Vielen Dank, dass Sie AWS Support mit Ihrer Frage zu AWS unterstützt haben   Lambda und UTF-8.

     

Wir untersuchen dieses Problem derzeit, wie andere Kunden auch   hat uns darauf aufmerksam gemacht. Es gibt kein Eta wenn das sein wird   aufgelöst oder wenn dies etwas ist, was wir lösen können.

    
BestPractices 10.08.2015, 22:58
quelle
0

Wie in AWS-Dokumentation - Programmiermodell (Node.js) :

  

Zeigt die Ausführung der Lambda-Funktion und alle durchgeführten Rückrufe an   erfolgreich. Hier ist die allgemeine Syntax:

%Vor%      

wo

     

Objekt result - liefert das Ergebnis der Funktionsausführung. Das   Das Ergebnis muss JSON.stringify kompatibel sein. Dieser Parameter ist   wahlweise. Sie können diese Methode ohne Parameter aufrufen ( succeed() )   oder übergeben Sie einen null -Wert ( succeed(null) ). Wenn AWS Lambda nicht gefunden werden kann   oder auf einen anderen Fehler stößt, wird ein unbehandelter Fehler ausgelöst, mit dem    X-Amz-Function-Error response header ist auf Unhandled gesetzt.

So können Sie das Ergebnis nicht so erhalten:

%Vor%

Weil die Zeichenkette Hello 世界! als JSON kodiert wird. Also, es wird zurückkehren:

%Vor%

Wenn Sie im Browser die AWS Lambda-Konsole verwenden:

%Vor%

Eigentlich ist es ein gültiger JSON , Sie müssen ihn erst dekodieren

Versuchen Sie Folgendes:

%Vor%

Das Log-Ergebnis lautet:

%Vor%

Nachdem Sie es entschlüsselt haben, können Sie Ihre ursprüngliche Zeichenfolge wiederherstellen.

    
Edward Samuel 07.08.2015 13:04
quelle