【问题标题】:Sanitizing non-English letters to use safely in URLs清理非英文字母以在 URL 中安全使用
【发布时间】:2011-08-18 15:10:16
【问题描述】:

在 .NET 中,从帖子标题创建 安全 URL 的最佳方法是什么? 例如,我可能有一个帖子“test wıth non enğlİşh çharaçters”,我想将其转换为 URL 安全形式,同时仍保持标题作为 URL 的可读性目的,例如“test-with-non-english-字符”,我会将它们用作http://mysite/blog/5/test-with-non-english-characters 我可以只遍历字符串字符并保留所有字母原样(在 URL 中使用不安全),或者清除所有非英文字符并将它们变成下划线等(破坏了可读性的目的,因为帖子将/可能使用非英语语言)。我确信有一种方法可以将ş 转换为sĞ 转换为G 等,就像在SQL 服务器中的不区分重音的搜索查询中一样。

【问题讨论】:

  • 这可能是一场失败的战斗。 ڟﻌ▓░♀☺╩ۆ对应什么小写字母?
  • 它们将被删除。任何对英语字母表中的字母没有重音不敏感映射的东西显然都会被删除,我认为我不需要明确地说出来。

标签: c# .net url escaping


【解决方案1】:

请参阅my answer 另一个问题以从字符串中删除重音符号。

请注意,这并不能完全解决问题。例如,亚洲表意文字或非拉丁字母不会使用此代码音译为英文(拉丁)字母。

【讨论】:

  • 现在,对我来说,去除拉丁口音就足够了。我不知道Normalize 方法,我认为它对我有用..
猜你喜欢
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2017-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多