### Perform legacy string conversion with StrConv Source: https://context7.com/rucio-rucio/kana.net/llms.txt Use StrConv to replicate Microsoft.VisualBasic.Strings.StrConv behavior for migrating legacy applications. Note that surrogate pairs are converted to '??'. ```csharp using Umayadia.Kana; // Using umaStrConv enum (C# style) string hiragana = KanaConverter.StrConv("ドラえもんは𩸽が大好き", umaStrConv.Hiragana); Console.WriteLine(hiragana); // Output: どらえもんは??が大好き string katakana = KanaConverter.StrConv("ドラえもんは𩸽が大好き", umaStrConv.Katakana); Console.WriteLine(katakana); // Output: ドラエモンハ??ガ大好キ // Using integer values (VB6/VBA compatible) // vbHiragana = 32, vbKatakana = 16 string result1 = KanaConverter.StrConv("テスト", 32); // Hiragana Console.WriteLine(result1); // Output: てすと string result2 = KanaConverter.StrConv("てすと", 16); // Katakana Console.WriteLine(result2); // Output: テスト ``` ```vb ' VB.NET usage with vbHiragana/vbKatakana constants Imports Umayadia.Kana Dim hiragana As String = KanaConverter.StrConv("ドラえもんは𩸽が大好き", vbHiragana) Console.WriteLine(hiragana) ' Output: どらえもんは??が大好き Dim katakana As String = KanaConverter.StrConv("ドラえもんは𩸽が大好き", vbKatakana) Console.WriteLine(katakana) ' Output: ドラエモンハ??ガ大好キ ``` -------------------------------- ### KanaConverter.StrConv for Legacy Compatibility Source: https://context7.com/rucio-rucio/kana.net/llms.txt Provides full compatibility with Microsoft.VisualBasic.Strings.StrConv for Hiragana/Katakana conversion, including handling of surrogate pairs. ```APIDOC ## KanaConverter.StrConv ### Description Provides full compatibility with the legacy `Microsoft.VisualBasic.Strings.StrConv` function for Hiragana/Katakana conversion. Designed for migrating VB6/VBA applications to .NET. Note that surrogate pairs (characters outside BMP like 𩸽) are converted to "??" to match legacy StrConv behavior. ### Method `KanaConverter.StrConv(string input, object conversionMode)` ### Endpoint N/A (Static method) ### Parameters #### Path Parameters N/A #### Query Parameters N/A #### Request Body N/A #### Parameters - **input** (string) - The string to convert. - **conversionMode** (object or `umaStrConv` enum or integer) - The conversion mode. Use `umaStrConv.Hiragana` (32) for Hiragana, `umaStrConv.Katakana` (16) for Katakana. ### Request Example (C#) ```csharp using Umayadia.Kana; // Using umaStrConv enum (C# style) string hiragana = KanaConverter.StrConv("ドラえもんは𩸽が大好き", umaStrConv.Hiragana); Console.WriteLine(hiragana); // Output: どらえもんは??が大好き string katakana = KanaConverter.StrConv("ドラえもんは𩸽が大好き", umaStrConv.Katakana); Console.WriteLine(katakana); // Output: ドラエモンハ??ガ大好キ // Using integer values (VB6/VBA compatible) // vbHiragana = 32, vbKatakana = 16 string result1 = KanaConverter.StrConv("テスト", 32); // Hiragana Console.WriteLine(result1); // Output: てすと string result2 = KanaConverter.StrConv("てすと", 16); // Katakana Console.WriteLine(result2); // Output: テスト ``` ### Request Example (VB.NET) ```vb ' VB.NET usage with vbHiragana/vbKatakana constants Imports Umayadia.Kana Dim hiragana As String = KanaConverter.StrConv("ドラえもんは𩸽が大好き", vbHiragana) Console.WriteLine(hiragana) ' Output: どらえもんは??が大好き Dim katakana As String = KanaConverter.StrConv("ドラえもんは𩸽が大好き", vbKatakana) Console.WriteLine(katakana) ' Output: ドラエモンハ??ガ大好キ ``` ### Response #### Success Response (Implicit) - The `KanaConverter.StrConv` method returns the converted string. #### Response Example ``` どらえもんは??が大好き ``` ``` -------------------------------- ### Convert to Full-Width with KanaConverter.ToWide Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts half-width characters to full-width equivalents, including Katakana, ASCII, and symbols. ```csharp using Umayadia.Kana; // Half-width Katakana to full-width Katakana string katakana = KanaConverter.ToWide("アイウエオ"); Console.WriteLine(katakana); // Output: アイウエオ // Half-width Katakana with voiced marks (dakuten) string voiced = KanaConverter.ToWide("ガギグゲゴ"); Console.WriteLine(voiced); // Output: ガギグゲゴ // Half-width Katakana with semi-voiced marks (handakuten) string semiVoiced = KanaConverter.ToWide("パピプペポ"); Console.WriteLine(semiVoiced); // Output: パピプペポ // ASCII alphanumeric and symbols string ascii = KanaConverter.ToWide("ABC123!@#"); Console.WriteLine(ascii); // Output: ABC123!@# // Half-width punctuation string punctuation = KanaConverter.ToWide("「テスト」、。"); Console.WriteLine(punctuation); // Output: 「テスト」、。 ``` -------------------------------- ### Access Shift_JIS Encoding via KanaUtil Source: https://context7.com/rucio-rucio/kana.net/llms.txt Provides access to the Shift_JIS encoding object with automatic CodePagesEncodingProvider registration. Useful for file I/O and byte length calculations in legacy systems. ```csharp using Umayadia.Kana; // Get Shift_JIS encoding var sjis = KanaUtil.ShiftJIS; // Calculate byte length of Japanese text var bytes = sjis.GetBytes("楽しい.NET"); Console.WriteLine($"'楽しい.NET' is {bytes.Length} bytes in Shift_JIS"); // Output: '楽しい.NET' is 10 bytes in Shift_JIS // Convert bytes back to string string decoded = sjis.GetString(bytes); Console.WriteLine(decoded); // Output: 楽しい.NET // Read a Shift_JIS encoded file string content = File.ReadAllText("japanese_file.txt", KanaUtil.ShiftJIS); // Write content in Shift_JIS encoding File.WriteAllText("output.txt", "日本語テキスト", KanaUtil.ShiftJIS); ``` -------------------------------- ### KanaConverter.ToWide Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts half-width (Hankaku) characters to full-width (Zenkaku) equivalents. ```APIDOC ## KanaConverter.ToWide ### Description Converts half-width (Hankaku) characters to full-width (Zenkaku) equivalents, including Katakana, ASCII alphanumeric characters, and common symbols. ### Parameters #### Request Body - **input** (string) - Required - The string containing half-width characters to convert. ### Response - **result** (string) - The converted string with full-width characters. ``` -------------------------------- ### Customize Hiragana conversion with MapToHiragana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Use the MapToHiragana delegate to override default conversion logic for specific characters or handle characters without standard equivalents. Set the property to null to restore default behavior. ```csharp using Umayadia.Kana; // Define custom mapping for specific Katakana characters KanaConverter.MapToHiragana = (StringBuilder builder, string letter, string suggestion, string source) => { builder.Append(letter switch { "ド" => "★", "ラ" => "ららら~", _ => suggestion // Use default conversion for other characters }); }; string result = KanaConverter.ToHiragana("ドラえもん大好き"); Console.WriteLine(result); // Output: ★ららら~えもん大好き // Handle Katakana characters without Hiragana equivalents KanaConverter.MapToHiragana = (StringBuilder builder, string letter, string suggestion, string source) => { builder.Append(letter switch { "ヷ" => "わ゙", // Wa with dakuten "ヸ" => "ゐ゙", // Wi with dakuten "ヹ" => "ゑ゙", // We with dakuten "ヺ" => "を゙", // Wo with dakuten _ => suggestion }); }; string special = KanaConverter.ToHiragana("ワヷヰヸヱヹヲヺ"); Console.WriteLine(special); // Output: わわ゙ゐゐ゙ゑゑ゙をを゙ // Reset to default behavior KanaConverter.MapToHiragana = null; ``` -------------------------------- ### KanaConverter.MapToNarrow Customization Source: https://context7.com/rucio-rucio/kana.net/llms.txt Enables custom character-by-character mapping during half-width conversion. ```APIDOC ## KanaConverter.MapToNarrow ### Description A delegate property that enables custom character-by-character mapping during half-width conversion. The delegate receives the result StringBuilder, current character, suggested conversion (which may be multiple characters for voiced Katakana), and full source string. ### Method Delegate assignment ### Endpoint N/A (In-memory configuration) ### Parameters #### Delegate Parameters - **builder** (StringBuilder) - The string builder to append converted characters to. - **letter** (string) - The current character being processed. - **suggestion** (string) - The default suggested half-width conversion for the character. - **source** (string) - The full original source string. ### Request Example ```csharp using Umayadia.Kana; KanaConverter.MapToNarrow = (StringBuilder builder, string letter, string suggestion, string source) => { // Keep full-width numbers as-is if (letter.Length == 1 && letter[0] >= '0' && letter[0] <= '9') { builder.Append(letter); } else { builder.Append(suggestion); } }; string result = KanaConverter.ToNarrow("カタカナ123ABC"); Console.WriteLine(result); // Output: カタカナ123ABC ``` ### Response #### Success Response (Implicit) - The `KanaConverter.ToNarrow` method returns the converted string. #### Response Example ``` カタカナ123ABC ``` ### Resetting to Default ```csharp KanaConverter.MapToNarrow = null; ``` ``` -------------------------------- ### Customize Katakana conversion with MapToKatakana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Use the MapToKatakana delegate to implement custom transliteration rules or filter out specific characters during conversion. ```csharp using Umayadia.Kana; // Define custom mapping for specific Hiragana characters KanaConverter.MapToKatakana = (StringBuilder builder, string letter, string suggestion, string source) => { builder.Append(letter switch { "え" => "e", // Convert to Romaji "も" => "MO", // Convert to uppercase Romaji _ => suggestion }); }; string result = KanaConverter.ToKatakana("ドラえもん大好き"); Console.WriteLine(result); // Output: ドラeMOン大好キ // Filter out specific characters KanaConverter.MapToKatakana = (StringBuilder builder, string letter, string suggestion, string source) => { // Skip spaces entirely if (letter != " " && letter != " ") { builder.Append(suggestion); } }; string noSpaces = KanaConverter.ToKatakana("あ い う え お"); Console.WriteLine(noSpaces); // Output: アイウエオ // Reset to default behavior KanaConverter.MapToKatakana = null; ``` -------------------------------- ### Convert to Half-Width with KanaConverter.ToNarrow Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts full-width characters to half-width equivalents, including Katakana, ASCII, and spaces. ```csharp using Umayadia.Kana; // Full-width Katakana to half-width Katakana string katakana = KanaConverter.ToNarrow("アイウエオ"); Console.WriteLine(katakana); // Output: アイウエオ // Voiced Katakana becomes base character + voiced mark string voiced = KanaConverter.ToNarrow("ガギグゲゴ"); Console.WriteLine(voiced); // Output: ガギグゲゴ // Semi-voiced Katakana becomes base character + semi-voiced mark string semiVoiced = KanaConverter.ToNarrow("パピプペポ"); Console.WriteLine(semiVoiced); // Output: パピプペポ // Full-width ASCII to half-width string ascii = KanaConverter.ToNarrow("ABC123"); Console.WriteLine(ascii); // Output: ABC123 // Full-width space to half-width space string space = KanaConverter.ToNarrow("全角 スペース"); Console.WriteLine(space); // Output: 全角 スペース ``` -------------------------------- ### KanaUtil.ShiftJIS Source: https://context7.com/rucio-rucio/kana.net/llms.txt Provides access to the Shift_JIS encoding object with automatic registration of the CodePagesEncodingProvider. ```APIDOC ## KanaUtil.ShiftJIS ### Description A convenience property that returns the Shift_JIS encoding object. Automatically registers the CodePagesEncodingProvider on .NET Core/.NET 5+ platforms. Useful for Japanese text processing, file I/O, and calculating byte lengths for legacy systems. ``` -------------------------------- ### Customize half-width conversion with MapToNarrow Source: https://context7.com/rucio-rucio/kana.net/llms.txt Use the MapToNarrow delegate to define custom logic for half-width conversion, such as preserving specific full-width characters. ```csharp using Umayadia.Kana; // Custom narrow conversion that preserves certain full-width characters KanaConverter.MapToNarrow = (StringBuilder builder, string letter, string suggestion, string source) => { // Keep full-width numbers as-is if (letter.Length == 1 && letter[0] >= '0' && letter[0] <= '9') { builder.Append(letter); } else { builder.Append(suggestion); } }; string result = KanaConverter.ToNarrow("カタカナ123ABC"); Console.WriteLine(result); // Output: カタカナ123ABC // Reset to default behavior KanaConverter.MapToNarrow = null; ``` -------------------------------- ### Convert Hiragana to Katakana with KanaConverter.ToKatakana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts Hiragana characters to Katakana, including iteration marks. ```csharp using Umayadia.Kana; // Basic Hiragana to Katakana conversion string result = KanaConverter.ToKatakana("ドラえもん大好き"); Console.WriteLine(result); // Output: ドラエモン大好キ // Full Hiragana sentence conversion string sentence = KanaConverter.ToKatakana("こんにちは、せかい!"); Console.WriteLine(sentence); // Output: コンニチハ、セカイ! // Iteration marks are also converted string iterationMarks = KanaConverter.ToKatakana("あゝいゞ"); Console.WriteLine(iterationMarks); // Output: アヽイヾ ``` -------------------------------- ### KanaConverter.ToNarrow Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts full-width (Zenkaku) characters to half-width (Hankaku) equivalents. ```APIDOC ## KanaConverter.ToNarrow ### Description Converts full-width (Zenkaku) characters to half-width (Hankaku) equivalents, including Katakana, ASCII, and common symbols. ### Parameters #### Request Body - **input** (string) - Required - The string containing full-width characters to convert. ### Response - **result** (string) - The converted string with half-width characters. ``` -------------------------------- ### Convert Katakana to Hiragana with KanaConverter.ToHiragana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts Katakana characters to Hiragana. Null inputs return an empty string. ```csharp using Umayadia.Kana; // Basic Katakana to Hiragana conversion string result = KanaConverter.ToHiragana("ドラえもん大好き"); Console.WriteLine(result); // Output: どらえもん大好き // Mixed content - only Katakana is converted string mixed = KanaConverter.ToHiragana("カタカナ123ABCひらがな"); Console.WriteLine(mixed); // Output: かたかな123ABCひらがな // Null input returns empty string string empty = KanaConverter.ToHiragana(null); Console.WriteLine($"Empty result: '{empty}'"); // Output: Empty result: '' ``` -------------------------------- ### KanaConverter.ResetToInitialSettings Source: https://context7.com/rucio-rucio/kana.net/llms.txt Resets the KanaConverter state to initial defaults, clearing all custom mappers and internal converters. ```APIDOC ## KanaConverter.ResetToInitialSettings ### Description Resets all KanaConverter state to initial defaults. Clears all custom mappers (MapToHiragana, MapToKatakana, MapToWide, MapToNarrow) and resets internal converters. Use this to ensure clean state between test runs or after temporary custom mappings. ``` -------------------------------- ### Reset KanaConverter to Initial Settings Source: https://context7.com/rucio-rucio/kana.net/llms.txt Clears all custom mappers and resets internal converters to default state. Use this to ensure a clean state between test runs or after temporary custom mappings. ```csharp using Umayadia.Kana; // Set up custom mappings KanaConverter.MapToHiragana = (builder, letter, suggestion, source) => { builder.Append(letter == "ア" ? "CUSTOM" : suggestion); }; KanaConverter.MapToKatakana = (builder, letter, suggestion, source) => { builder.Append(suggestion.ToUpper()); }; // Verify custom mappings are active string custom = KanaConverter.ToHiragana("アイウ"); Console.WriteLine(custom); // Output: CUSTOMいう // Reset all settings to defaults KanaConverter.ResetToInitialSettings(); // Verify default behavior is restored string normal = KanaConverter.ToHiragana("アイウ"); Console.WriteLine(normal); // Output: あいう ``` -------------------------------- ### KanaConverter.MapToHiragana Customization Source: https://context7.com/rucio-rucio/kana.net/llms.txt Allows custom character-by-character mapping during Hiragana conversion. Useful for special character handling or custom logic. ```APIDOC ## KanaConverter.MapToHiragana ### Description A delegate property that enables custom character-by-character mapping during Hiragana conversion. The delegate receives the result StringBuilder, current character, suggested conversion, and full source string. Useful for handling special characters or implementing custom conversion logic. ### Method Delegate assignment ### Endpoint N/A (In-memory configuration) ### Parameters #### Delegate Parameters - **builder** (StringBuilder) - The string builder to append converted characters to. - **letter** (string) - The current character being processed. - **suggestion** (string) - The default suggested Hiragana conversion for the character. - **source** (string) - The full original source string. ### Request Example ```csharp using Umayadia.Kana; KanaConverter.MapToHiragana = (StringBuilder builder, string letter, string suggestion, string source) => { builder.Append(letter switch { "ド" => "★", "ラ" => "ららら~", _ => suggestion // Use default conversion for other characters }); }; string result = KanaConverter.ToHiragana("ドラえもん大好き"); Console.WriteLine(result); // Output: ★ららら~えもん大好き ``` ### Response #### Success Response (Implicit) - The `KanaConverter.ToHiragana` method returns the converted string. #### Response Example ``` ★ららら~えもん大好き ``` ### Resetting to Default ```csharp KanaConverter.MapToHiragana = null; ``` ``` -------------------------------- ### KanaConverter.MapToKatakana Customization Source: https://context7.com/rucio-rucio/kana.net/llms.txt Enables custom character-by-character mapping during Katakana conversion, useful for transliteration or custom rules. ```APIDOC ## KanaConverter.MapToKatakana ### Description A delegate property that enables custom character-by-character mapping during Katakana conversion. The delegate receives the result StringBuilder, current character, suggested conversion, and full source string. Useful for implementing transliteration or custom conversion rules. ### Method Delegate assignment ### Endpoint N/A (In-memory configuration) ### Parameters #### Delegate Parameters - **builder** (StringBuilder) - The string builder to append converted characters to. - **letter** (string) - The current character being processed. - **suggestion** (string) - The default suggested Katakana conversion for the character. - **source** (string) - The full original source string. ### Request Example ```csharp using Umayadia.Kana; KanaConverter.MapToKatakana = (StringBuilder builder, string letter, string suggestion, string source) => { builder.Append(letter switch { "え" => "e", // Convert to Romaji "も" => "MO", // Convert to uppercase Romaji _ => suggestion }); }; string result = KanaConverter.ToKatakana("ドラえもん大好き"); Console.WriteLine(result); // Output: ドラeMOン大好キ ``` ### Response #### Success Response (Implicit) - The `KanaConverter.ToKatakana` method returns the converted string. #### Response Example ``` ドラeMOン大好キ ``` ### Filtering Example ```csharp // Filter out specific characters KanaConverter.MapToKatakana = (StringBuilder builder, string letter, string suggestion, string source) => { // Skip spaces entirely if (letter != " " && letter != " ") { builder.Append(suggestion); } }; string noSpaces = KanaConverter.ToKatakana("あ い う え お"); Console.WriteLine(noSpaces); // Output: アイウエオ ``` ### Resetting to Default ```csharp KanaConverter.MapToKatakana = null; ``` ``` -------------------------------- ### KanaConverter.ToKatakana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts all Hiragana characters in a string to their Katakana equivalents. ```APIDOC ## KanaConverter.ToKatakana ### Description Converts all Hiragana characters in a string to their Katakana equivalents, including iteration marks. Returns an empty string when passed null. ### Parameters #### Request Body - **input** (string) - Required - The string containing Hiragana characters to convert. ### Response - **result** (string) - The converted string with Katakana characters. ``` -------------------------------- ### KanaConverter.ToHiragana Source: https://context7.com/rucio-rucio/kana.net/llms.txt Converts all Katakana characters in a string to their Hiragana equivalents. ```APIDOC ## KanaConverter.ToHiragana ### Description Converts all Katakana characters in a string to their Hiragana equivalents. Characters without Hiragana counterparts are left unchanged. Returns an empty string when passed null. ### Parameters #### Request Body - **input** (string) - Required - The string containing Katakana characters to convert. ### Response - **result** (string) - The converted string with Hiragana characters. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.