[RAILS] [Ruby] Ungültiges Multibyte-Zeichen (UTF-8) Fehlerbehebungsmethode [CSV]

Derzeit helfe ich beim Sammeln von Daten für die Restaurantberatung durch Outsourcing (Abkratzen des Essprotokolls mit der Rails-Anwendung und dem Ruby-Skript), aber ich hatte Schwierigkeiten mit einem Fehler bei der Zeichenkodierung. Hier ist die Lösung Ich werde es teilen.

Umgebung

Fehlercode


SyntaxError ((irb):1: invalid multibyte char (UTF-8))

Als ich die Ruby-Scraping-Datei vom Terminal aus ausführte, wurde dieser Fehler angezeigt.

Anscheinend ist der Zeichencode falsch und es tritt ein Fehler auf. Windows hat einen ANSI-Standardzeichencode, wenn Sie eine Datei speichern, und Sie müssen diesen Zeichencode in UTF-8 ändern und speichern!

** Starten Sie einfach Notepad und ändern Sie den Zeichencode von ANSI in UTF-8 (keine Stückliste empfohlen), wenn Sie die zu ändernde Datei ziehen und ablegen und als Namen speichern! ** ** ** Referenz

Es hat nichts mit Programmierung zu tun. .. ww

Ich habe den Code des Skripts von UTF-8 auf cp932 geändert und verschiedene Dinge getan, aber es machte nicht viel Sinn. .. Lol

Dies allein hat den Fehler übrigens nicht gelöst ...

Am Ende sieht der Code so aus ↓

scrp_tabelog.rb


CSV.open('new_log_file.csv', "w", liberal_parsing: true) do |csv|
  csv << ['Vertragssequenznummer', 'Speichername', 'Datum', 'Bewertungsergebnis', '', '', '', '', '', '', '', 'Anzahl der Bewertungen(Fall)', 'Wer ging(Mann)', '行きたいMann(Mann)']
  csv << ['', '', '', 'Umfassend', 'Nacht', 'Mittag', 'Kochen / schmecken', 'Bedienung', 'Atmosphäre', 'CP', 'Alkohol / Getränk']

  CSV.foreach('shop_point_list.csv', headers: false, liberal_parsing: true) do |recent_row|
    #Schreiben Sie den Prozess
  end
end

Der Punkt hier ist ** liberal_parsing: true **. Es scheint, dass die in den Daten angezeigten doppelten Anführungszeichen analysiert werden können, wenn die Daten nicht in doppelte Anführungszeichen eingeschlossen sind, wenn sie mit der Option zu CSV aus Ruby 2.4.0 auf true gesetzt sind.

Jetzt habe ich es geschafft, die Daten ohne Fehler abzurufen!

Vielen Dank für das Lesen bis zum Ende!

Ich gebe aus, was ich jeden Tag gelernt habe! Wir würden uns freuen, wenn Sie Ihre Eindrücke und Vorschläge kommentieren könnten!

Recommended Posts

[Ruby] Ungültiges Multibyte-Zeichen (UTF-8) Fehlerbehebungsmethode [CSV]
[Ruby on Rails] undefinierte Methode `id'for nil: NilClass-Fehlerbehebungsmethode
Spring Boot + PostgreSQL-Fehlerbehebungsmethode
[Ruby on Rails] Folgen Sie der undefinierten Methode `id'for nil: Beheben Sie den Fehler NilClass
[Ruby on Rails] Kein Methodenfehler undefinierte Methode `devise_for'error Auflösung