| | 1 | | @using System.Text |
| | 2 | | @inject IJSRuntime JSRuntime |
| | 3 | | @inject HttpClient HttpClient |
| | 4 | |
|
| | 5 | | <div class="container"> |
| | 6 | |
|
| | 7 | | <div class="row"> |
| | 8 | | <div class="col"> |
| | 9 | | <p>⚠️ Takes a while to load</p>️ |
| | 10 | | </div> |
| | 11 | | </div> |
| | 12 | |
|
| | 13 | | <div class="row"> |
| | 14 | | <div class="col"> |
| | 15 | |
|
| | 16 | | <div> |
| | 17 | | <table> |
| | 18 | | @* @for (int i = 0; i <= (UnicodeCharacters.Count - 1) / 15; ++i) *@ |
| | 19 | | @* { *@ |
| | 20 | | @* <tr> *@ |
| | 21 | | @* @for (int j = 0; j < 15 && i + j < UnicodeCharacters.Count; ++j) *@ |
| | 22 | | @* { *@ |
| | 23 | | @* <td>@((MarkupString)@$"\u{UnicodeCharacters[i+j]}")<br />@UnicodeCharacters[i+j]</td> *@ |
| | 24 | | @* } *@ |
| | 25 | | @* </tr> *@ |
| | 26 | | @* } *@ |
| | 27 | | </table> |
| | 28 | | </div> |
| | 29 | |
|
| | 30 | | </div> |
| | 31 | | </div> |
| | 32 | |
|
| | 33 | | @* <div class="row"> *@ |
| | 34 | | @* <div class="col"> *@ |
| | 35 | | @* <button id="btnCopy" name="btnCopy" class="btn btn-info float-right" @onclick="Copy"><i class="far fa-cop |
| | 36 | | @* </div> *@ |
| | 37 | | @* </div> *@ |
| | 38 | |
|
| | 39 | | <hr /> |
| | 40 | |
|
| | 41 | | <div class="row"> |
| | 42 | | <div class="col"> |
| | 43 | | <p>Useful site <a href="https://shapecatcher.com" target="_blank">shapecatcher.com</a> Unicode Character Rec |
| | 44 | | <p>Draw something in the box! And let shapecatcher help you to find the most similar unicode characters!</p> |
| | 45 | | | |
| | 46 | | <p><a href="https://util.unicode.org/UnicodeJsps/character.jsp" target="_blank">Unicode Utilities: Character |
| | 47 | | | |
| | 48 | | <p><a href="https://www.compart.com/en/unicode/U+0000" target="_blank">https://www.compart.com/en/unicode/U+ |
| | 49 | | <p>💔</p> |
| | 50 | | </div> |
| | 51 | | </div> |
| | 52 | |
|
| | 53 | | </div> |
| | 54 | |
|
| | 55 | | @code { |
| 0 | 56 | | List<string?> UnicodeCharacters = new List<string>(); |
| | 57 | |
|
| | 58 | | private string errorMessage; |
| | 59 | |
|
| | 60 | | // protected override async Task OnInitializedAsync() |
| | 61 | | // { |
| | 62 | | // // HttpClient.DefaultRequestHeaders.Add("Access-Control-Allow-Origin", "*"); |
| | 63 | | // // HttpClient.DefaultRequestHeaders.Add("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Ty |
| | 64 | | // |
| | 65 | | // // var unicodeDataUrl = "https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt"; |
| | 66 | | // var unicodeDataUrl = "data/UnicodeData.txt"; |
| | 67 | | // var content = await HttpClient.GetStringAsync(unicodeDataUrl); |
| | 68 | | // |
| | 69 | | // // foreach (var line in content.Split(new string[] { Environment.NewLine }, StringSplitOptions.None)) |
| | 70 | | // // { |
| | 71 | | // // // 0000;<control>;Cc;0;BN;;;;;N;NULL;;;; |
| | 72 | | // // var unicode = line.Split(";"); |
| | 73 | | // // Console.WriteLine(unicode[0]); |
| | 74 | | // // } |
| | 75 | | // |
| | 76 | | // UnicodeCharacters = content |
| | 77 | | // .Split(new string[] { System.Environment.NewLine }, StringSplitOptions.None) |
| | 78 | | // .Select(line => line.Split(";").FirstOrDefault()) |
| | 79 | | // // .Select(u => $"&#x{u};") |
| | 80 | | // // .Select(u => $@"\u{u}") |
| | 81 | | // .ToList(); |
| | 82 | | // |
| | 83 | | // // UnicodeCharacters.Insert(0, "💔"); |
| | 84 | | // // UnicodeCharacters.Insert(0, "\u1F494"); |
| | 85 | | // Console.WriteLine(UnicodeCharacters.Count()); |
| | 86 | | // |
| | 87 | | // string text = "\u2019"; |
| | 88 | | // byte[] textBytes = Encoding.Unicode.GetBytes(text); |
| | 89 | | // Encoding.UTF8.GetString(Encoding.Convert(Encoding.Unicode, Encoding.UTF8, textBytes)); |
| | 90 | | // |
| | 91 | | // var escaped = System.Text.RegularExpressions.Regex.Unescape(@"\u2019"); |
| | 92 | | // Console.WriteLine(escaped); |
| | 93 | | // } |
| | 94 | |
|
| | 95 | | // private void Clear() |
| | 96 | | // { |
| | 97 | | // Input = string.Empty; |
| | 98 | | // } |
| | 99 | | // |
| | 100 | | // async Task Copy() |
| | 101 | | // { |
| | 102 | | // await JSRuntime.InvokeVoidAsync("navigator.clipboard.writeText", Output); |
| | 103 | | // } |
| | 104 | |
|
| | 105 | | } |