Trong JavaScript:C# có tương đương với mã encodeURIComponent của JavaScript() không?
encodeURIComponent("©√") == "%C2%A9%E2%88%9A"
Có tương đương cho các ứng dụng C#? Để thoát các ký tự HTML tôi đã sử dụng:
txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",
m => @"&#" + ((int)m.Value[0]).ToString() + ";");
Nhưng tôi không biết cách chuyển đổi khớp với định dạng thập lục phân chính xác mà JS sử dụng. Ví dụ mã này:..
txtOut.Text = Regex.Replace(txtIn.Text, @"[\u0080-\uFFFF]",
m => @"%" + String.Format("{0:x}", ((int)m.Value[0])));
Returns "%a9%221a"
cho "©√"
thay vì "%C2%A9%E2%88%9A"
Dường như tôi cần phải chia chuỗi thành byte hoặc một cái gì đó
Chỉnh sửa: Đây là một ứng dụng cửa sổ, chỉ mục có sẵn trong System.Web
là:. AspNetHostingPermission
, AspNetHostingPermissionAttribute
, và AspNetHostingPermissionLevel
Vấn đề chính tôi gặp phải là không có tham chiếu đến System.Web trong giải pháp của tôi, nhưng tôi không biết về EscapeUriString, cảm ơn! – travis
Ngược lại với encodeURIComponent(), Uri.EscapeUriString() không mã hóa "+" thành "% 2b". Sử dụng Uri.EscapeDataString() để thay thế. – jwaliszko
@Steve Uri.EscapeDataString đã lưu ngày của chúng tôi;) – InferOn