चरित्र ऊपर चित्र कुछ महीने पहले Mikko Hyppönen, एक कंप्यूटर सुरक्षा विशेषज्ञ कंप्यूटर सुरक्षा पर कंप्यूटर वायरस पर अपने काम और TED talks के लिए जाना जाता से ट्वीट किया गया था के रूप में विशेषक के खिलाफ की रक्षा। एसओ के संबंध में, मैं केवल इसकी एक छवि पोस्ट करूंगा, लेकिन आपको विचार मिल जाएगा। यह स्पष्ट रूप से ऐसा कुछ नहीं है जिसे आप अपनी वेबसाइट के चारों ओर फैलाना चाहते हैं और आगंतुकों को बाहर निकालना चाहते हैं।
आगे निरीक्षण पर, चरित्र थाई वर्णमाला के साथ एक थाई वर्णमाला का एक पत्र प्रतीत होता है (यहां तक कि एक सीमा भी है ?!)। इससे मुझे सुरक्षा, स्थानीयकरण और इस तरह के इनपुट को कैसे संभाला जा सकता है, इस बारे में सोच रहा है। मेरी खोज मुझे स्टैक पर this question पर ले जाती है, और बदले में stripping diacritics पर माइकल कपलन से एक ब्लॉग पोस्ट। इस रिपोर्ट में उन्होंने दर्शाता है कि कैसे एक अपने "आधार" अक्षरों में एक स्ट्रिंग (यहाँ संक्षिप्तता की खातिर सरलीकृत) विघटित कर सकते हैं:
StringBuilder sb = new StringBuilder();
foreach (char c in "façade".Normalize(NormalizationForm.FormD))
{
if (char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
sb.Append(c);
}
Response.Write(sb.ToString()); // facade
मैं देख सकते हैं कि है कि इस कुछ मामलों में उपयोगी होगा है, लेकिन में उपयोगकर्ता इनपुट की शर्तें, यह सभी उच्चारविज्ञानों को अलग कर देगी। जैसा कि कपलान बताते हैं, कुछ भाषाओं में उच्चारविज्ञान को हटाकर शब्द को पूरी तरह से अर्थ बदल सकते हैं। यह सवाल पूछता है: उपयोगकर्ता इनपुट/आउटपुट में कुछ डायक्रिटिक्स को कैसे अनुमति देता है, लेकिन अन्य लोगों को मिक्को हाइपोपेन के उबर चरित्र जैसे चरम मामलों को बाहर कर देता है?
एक स्थिर वर्ग/उपयोगिता वर्ग के माध्यम से व्हाइटलिस्ट? और यह programmers.stackexchange.com पर जाने के लायक है। –
@MonsterTruck, काफी मेला, लेकिन श्वेतसूची क्या वास्तव में? ये यूनिकोड वर्ण हैं जिनके बारे में मैं बात कर रहा हूं। –
आप प्रति बेस चरित्र की अधिकतम संख्या में डायक्रिटिक्स सेट कर सकते हैं। वियतनामी और ग्रीक अभी भी ठीक है, लेकिन पागल मामलों को अस्वीकार करने के लिए पर्याप्त कम है, तो एक मूल्य इतना ऊंचा उठाओ। –