【问题标题】:PHP - GET umlauts from an link parameterPHP - 从链接参数获取变音符号
【发布时间】:2017-04-30 20:55:22
【问题描述】:

我目前正在处理自动 PDF 表单。 一切都在工作,但问题是当我试图呼应价格或命名变音符号如ä、ö、ü、ß等时不会显示。即使是 € 符号也不会显示。我正在尝试从已发布的 URL 中使用 GET。所以我需要帮助。

获取参数:

    $name = $_GET['name'];
    $geb = $_GET['geb'];
    $strasse = $_GET['strasse'];
    $plz = $_GET['plz'];
    $beruf = $_GET[urlencode(beruf)];
    $tel = $_GET['tel'];
    $mail = $_GET['mail'];
    $ek = $_GET['ek'];
    $vorbesitzer = $_GET['vorbesitzer'];
    $vkpreis = $_GET['vkpreis'];
    $sonstige = $_GET['sonsitge'];
$marke = $_GET[urlencode('marke')];
    $modell = $_GET['modell'];
    $motor = $_GET['motor'];
    $km = $_GET['km'];
    $fin = $_GET['fin'];
    $ez = $_GET['ez'];

对于测试,我的网址中只有两个参数:

erstellen?eknr=88&marke=Skoda&beruf=Medienfachmannäöü€$

当我使用 urlencode 时,它​​看起来像这样:

erstellen?eknr=88&marke=Skoda&beruf=Medienfachmannäöü€$

我如何创建我的网址:

<script type="text/javascript">
    window.location = "erstellen?<?php $conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM `Fahrzeugverkauf` WHERE EKNR = $ek";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

     while($row = $result->fetch_assoc()) {
$query_string = 'eknr=' . rawurlencode ($row[EKNR]) . '&marke=' . rawurlencode ($row[Marke]). '&beruf=' . rawurlencode ($beruf);
         echo htmlentities($query_string) ;
     }
} ?>"

我的输出是这样的:

  $pdf->useTemplate($tplIdx, 0, 0, 210);
  $pdf->SetFont('Times','B', 10);
        $pdf->SetXY(158, 4.2);
    $pdf->Write(4, '13-12-2016');
        $pdf->SetXY(36.2, 24.6);
    $pdf->Write(4, $name);
        $pdf->SetXY(162.6, 24.7);
    $pdf->Write(4,$geb);
            $pdf->SetXY(35.3, 31.3);
    $pdf->Write(4,$strasse);
                $pdf->SetXY(85, 31.3);
    $pdf->Write(4,$plz);
            $pdf->SetXY(31.2, 37.6);
    $pdf->Write(4,urldecode($beruf));
                $pdf->SetXY(155, 37.6);
    $pdf->Write(4,'?????üüßßßßüüü€??');
                    $pdf->SetXY(54, 59.5);
    $pdf->Write (4, urldecode($marke));
                        $pdf->SetXY(102, 59.5);

    $pdf->Write(4,$modell);
                        $pdf->SetXY(40, 66.2);
    $pdf->Write(4,$ez);
                        $pdf->SetXY(78, 66.2);
    $pdf->Write(4,$motor);
                            $pdf->SetXY(122.8, 66.2);
    $pdf->Write(4,$fin);
                            $pdf->SetXY(70, 79.2);
    $pdf->Write(4,$km);
                            $pdf->SetXY(38, 85.3);
    $pdf->Write(4,$vorbesitzer);
       $pdf->SetXY(52, 92);
    $pdf->Write(4,$vkpreis);
    $pdf->Image('checkbox.jpg', 63.8, 130,5,5);
    $pdf->Image('check-box.png', 63.8, 160,5,5);
    $pdf->Image('checkbox.jpg', 63.8, 192.5,5,5);
    $pdf->Image('check-box.png', 63.8, 227.6,5,5);

所以我面临的问题是我不能使用元参数,因为我使用的是 FPDF。有人可以帮忙吗?

【问题讨论】:

  • 如何创建url?你能提供代码吗? urlencode 应该可以工作。也许这里出了点问题。
  • 更新了,我觉得很简单

标签: php pdf urlencode fpdf diacritics


【解决方案1】:

您可能必须在输入文件和 FPDF 中设置正确的编码 UTF-8。如果还没有发生,您还需要将文件编码设置为 UTF-8。

您可以使用 ISO-8859-1(拉丁语 1),但我不建议这样做。

【讨论】:

  • FPDF 不支持 UTF-8。但是我将它设置为正确的编码,如果我只是将变音符号放入而没有任何东西,它只是正确输出它的写入参数。但是当我从 url 得到它时,它看起来像这样: Medienfachmannäöü€
  • 真的吗?该死,这怎么可能?那么你应该使用 utf8_encode/utf8_decode... 不是最好的,但应该可以按预期工作。
  • 很高兴它成功了,虽然我不明白为什么 FPDF 不支持 UTF-8 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
相关资源
最近更新 更多