2017-05-18 11 views
-1

So habe ich eine HTML-Seite mit einigen Javascript drin. Ich möchte es verwenden, um eine .csv Datei zu öffnen. Aber jedes Mal, wenn die Datei alle Zeichen mit Akzenten lädt (wie: á, í, ç, ã, ê and º), erscheint es wie folgt . Der Code:Html/JavaScript Zeichen mit Akzent

https://pastebin.com/bhjkwktT

Es ist auf jeden Fall die Zeichen erscheinen oder zumindest Änderung normalen (a, e, i, etc.) zu machen?

Dieses "Programm" wird in meinem engen Netzwerk sein, und in verschiedenen Computern von Freigabe Ordner verwenden.

+2

Willkommen bei Paketüberfluss! Der vollständige Inhalt Ihrer Frage muss ** in ** Ihrer Frage sein, nicht nur verknüpft. Links verrotten, was die Frage und ihre Antworten in Zukunft für die Menschen nutzlos macht, und die Leute sollten nicht von außerhalb gehen müssen, um Ihnen zu helfen. Setzen Sie eine [mcve] ** in ** die Frage, idealerweise mit Hilfe von Stack Snippets (der '<>' Symbolleistenschaltfläche), um es runnable zu machen. Mehr: [* Wie stelle ich eine gute Frage? *] (/ Help/how-to-ask) –

Antwort

4

Die Webseite verwendet eine andere Zeichencodierung als die Zeichencodierung der CSV-Datei. Dies führt dazu, dass das aus der CSV-Datei gelesene Zeichen mit einem anderen Mechanismus decodiert wird, mit dem es codiert wurde, wodurch das falsche Zeichen angezeigt wird.

Stellen Sie sicher, dass beide Dateien im UTF-8-Format und nicht im ANSI-Format gespeichert sind. Stellen Sie dann in Ihrer Webseite sicher, dass diese Zeile am Anfang des Abschnitts head angezeigt wird.

<meta charset="utf-8"> 

Nun Blick auf den Code Sie verbunden sind, ist Ihre HTML nicht einmal gültig wie Sie mehrere Elemente aufweisen, die nicht innerhalb des head Element sind, wie sie sein sollte.

Sie haben dies:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<title>Lista</title> 
<link rel="stylesheet" href="css/csvtable.css" type="text/css" /> 
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="js/jquery.csvToTable.js"></script> 
<link href="Lista.css" type="text/css" rel="stylesheet"> 

<head> 

<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 
<meta charset="utf-8" />  
</head> 
<body> 

Mit den title, link und script Elemente nicht innerhalb des head Abschnitt.

Darüber hinaus verwenden Sie das HTML5 DOCTYPE, aber Sie geben dann den XHTML 1.0-Namespace an. Anschließend geben Sie die Codierung zweimal an und verwenden dabei die Syntax jeder Sprache. Sie haben höchstwahrscheinlich HTML5 (außer Sie haben einen bestimmten Grund).

Es sollte sein:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Lista</title> 
    <link rel="stylesheet" href="css/csvtable.css"> 
    <script src="js/jquery-1.4.2.min.js"></script> 
    <script src="js/jquery.csvToTable.js"></script> 
    <link rel="stylesheet" href="Lista.css"> 
</head> 
<body> 

Sie auch sicher, dass Ihre zusätzlichen externen Dateien (die CSS- und JS-Dateien) mit UTF-8-Codierung als auch (keine Sorge über gespeichert machen sollten Dateien von Drittanbietern, da dies bereits geschehen ist).

In CSS-Dateien, ist die Datei mit der richtigen Codierung sparend in der Regel genug, aber Sie können einen Schritt weiter gehen und declare the encoding formal durch diese ganz am Anfang der CSS-Datei platzieren: @charset "UTF-8";

+0

... oder stellen Sie einfach sicher, dass sie alle gespeichert sind und die gleiche Kodierung melden, egal was es ist ist (aber UTF-8 ist normalerweise eine gute Wahl für westliche Skripte). –

+0

Funktioniert immer noch nicht, kann es sein in 'reader.readAsText ($ (" # fileUpload ") [0] .files [0]);'? – Noscente

+0

@Noscente Warum verwenden Sie den 'FileReader' an erster Stelle? Warum nicht einfach einen AJAX-Aufruf für die '.csv'? –

Verwandte Themen