当我从php编写时,csv文件中的德语umlauts出现问题

当我从php编写时,csv文件中的德语umlauts出现问题,php,html,csv,Php,Html,Csv,问候语 当我想使用php脚本将数据库中的数据输入csv文件时,我遇到了一个问题。它正确地打印数据库中的所有内容,但当它打印到csv文件时,会出现字符错误,即无法很好地打印它们。 错误的例子。。。我需要的是 如果我能以某种方式将csv文件打印到数据库中? 我的代码: <?php require_once 'connections.php'; $query = "SELECT Artikelnummer_im_Shop, EAN_GTIN_Barcodenummer_UPC,

问候语

当我想使用php脚本将数据库中的数据输入csv文件时,我遇到了一个问题。它正确地打印数据库中的所有内容,但当它打印到csv文件时,会出现字符错误,即无法很好地打印它们。 错误的例子。。。我需要的是

如果我能以某种方式将csv文件打印到数据库中? 我的代码:

<?php 



require_once 'connections.php'; 


$query = "SELECT Artikelnummer_im_Shop, EAN_GTIN_Barcodenummer_UPC, 
 Herstellerartikelnummern_HAN_MPN, Hersteller_Markenname, 
 Produktname,Preis_Brutto, Lieferzeit, Produktbeschreibung, ProduktURL, 
 BildURL_1, Versandkosten, Vorkasse, Paydirekt, Paypal, 
 Kreditkartenzahlung_uber_BS_PAYONE_GmbH, Versandkosten_Kommentar 
FROM app_table";

$result = mysqli_query($connect, $query) or die("database error:". 
mysqli_error($connect));

$file   = "inko-table.csv";
// Delete file if exist
unlink($file);
// Write to the file or create if not exist
$f      = fopen($file, 'w'); // Open in write mode ('w' will overwrite everything everytime)

$table      = "app_table";
$sql        = mysqli_query($connect, "SELECT * FROM $table");
$num_rows   = mysqli_num_rows($sql);
$products   = mysqli_fetch_array($sql);
// Writing data in file var $file

$i = 1;
while($row = mysqli_fetch_array($sql)) {

  $nameComma                  = $row['Produktname'];
    $name                       = str_replace(",", "", $nameComma);
    $pzn                        = $row['EAN_GTIN_Barcodenummer_UPC'];
    $url                        = $row['ProduktURL'];
    $brand                      = $row['Hersteller_Markenname'];
  $priceComma                 = $row['Preis_Brutto'];
    $price                      = str_replace(",", ".", $priceComma);
    $Artikelnummer              = $row['Artikelnummer_im_Shop'];
  $ProduktbeschreibungComma   = $row['Produktbeschreibung'];
    $Produktbeschreibung        = str_replace(",", "", $ProduktbeschreibungComma);
    $Herstellerartikelnummern   = $row['Herstellerartikelnummern_HAN_MPN'];
  $LieferzeitComma            = $row['Lieferzeit'];
    $Lieferzeit                 = str_replace(",", "", $LieferzeitComma);
    $BildURL_1                  = $row['BildURL_1'];
  $VersandkostenComma         = $row['Versandkosten'];
    $Versandkosten              = str_replace(",", ".", $VersandkostenComma);
    $Vorkasse                   = $row['Vorkasse'];
    $Paydirekt                  = $row['Paydirekt'];
    $Paypal                     = $row['Paypal'];
    $Kreditkartenzahlung        = $row['Kreditkartenzahlung_uber_BS_PAYONE_GmbH'];
  $KommentarComma             = $row['Versandkosten_Kommentar'];
    $Kommentar                  = str_replace(",", "", $KommentarComma);


    if ($i==1) {
        $product = "Artikelnummer im Shop".","."EAN / GTIN / Barcodenummer / UPC".","."Herstellerartikelnummern (HAN/MPN)".","."Hersteller / Markenname".","."Produktname".","."Preis (Brutto)".","."Lieferzeit".","."Produktbeschreibung".","."ProduktURL".","."BildURL_1".","."Versandkosten".","."Vorkasse".","."Paydirekt".","."Paypal".","."Kreditkartenzahlung über BS PAYONE GmbH".","."Versandkosten Kommentar"."\n".$Artikelnummer.",".$pzn.",".$Herstellerartikelnummern.",".$brand.",".$name.",".$price.",".$Lieferzeit.",".$Produktbeschreibung.",".$url.",".$BildURL_1.",".$Versandkosten.",".$Vorkasse.",".$Paydirekt.",".$Paypal.",".$Kreditkartenzahlung.",".$Kommentar."\n";
    } else {
        $product = $Artikelnummer.",".$pzn.",".$Herstellerartikelnummern.",".$brand.",".$name.",".$price.",".$Lieferzeit.",".$Produktbeschreibung.",".$url.",".$BildURL_1.",".$Versandkosten.",".$Vorkasse.",".$Paydirekt.",".$Paypal.",".$Kreditkartenzahlung.",".$Kommentar."\n";
    }

    $i++;

    fwrite($f, $product);
}
fclose($f);

试试:

string utf8_decode ( string $data );
例如:

$ProduktbeschreibungComma   = utf8_decode ($row['Produktbeschreibung']);
它应该返回正确的umlauts


如果它在您的csv文件中。输出前使用utf_解码。尝试将csv文件的文件编码更改为utf8。

您不应该手动构造csv,而应该使用
fputcsv()
。这几乎肯定是一个字符编码问题。确保所有内容都是UTF8(输入、输出、DB、PHP脚本本身……)