代码之家  ›  专栏  ›  技术社区  ›  Matias Diez

在图像URL中使用西班牙语字符时出现问题

  •  1
  • Matias Diez  · 技术社区  · 6 年前

    我的Angular6应用程序中有一个表格,显示服务的内容。在表中,我有两列使用完全相同的属性。 {{standing.teamName}}

    第一列将工作组名称显示为文本,工作正常。 例如:

        <ng-container matColumnDef="Equipo">
          <th mat-header-cell *matHeaderCellDef>Equipo</th>
          <td mat-cell *matCellDef="let standing">{{standing.teamName}}</td>
        </ng-container>
    

    第二列使用完全相同的值对img源进行参数化。

    <ng-container matColumnDef="img">
          <th mat-header-cell *matHeaderCellDef></th>
          <td mat-cell *matCellDef="let standing"><div><img mat-card-avatar src="../../assets/Flags/{{standing.teamName}}.png" alt=""></div></td>
        </ng-container>
    

    在这种情况下,我得到的问题是: 得到 http://localhost:4200/assets/Flags/Espa%C3%B1a.png 404(未找到)

    我试着用espa%c3%b1a.png命名文件,看看是否能找到它。

    我对重音符号和其他西班牙字符也有同样的问题,我不明白为什么它在一个字符中有效,但在另一个字符中无效。

    1 回复  |  直到 6 年前
        1
  •  0
  •   colxi    6 年前

    验证HTML的头部是否具有以下元属性:

    <meta charset="UTF-8">
    

    验证数据库/表的字符集是否设置为 UTF-8 也是。

    这就足够让它发挥作用了。


    不过,我个人建议你 仅使用安全字符 在你的URI中, 替换 'ñ' 通过 'n' 和带有重音的人声 无重音人声 . 我也尝试 避免大写字母 .

    这将避免此类问题,帮助您的SEO,使您的代码更易于移植,最大限度地提高服务器和浏览器之间的兼容性。

    在以下外部链接中,您可以阅读西班牙社区对此问题的一些建议:

    http://www.forosdelweb.com/f64/url-amigables-realmente-no-deben-usar-acentos-ni-e-872760/