This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ windows_first
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation demonstrates a Windows bias by prioritizing Windows-centric encodings (such as 'windows-1250', 'windows-1252') in examples, referencing .NET and Azure Functions exclusively (which are historically Windows-first technologies), and omitting any Linux/Unix command-line or open-source tool examples (such as iconv or recode). There are no Linux shell, Python, or cross-platform code samples, nor is there mention of Linux-native encoding workflows.
Recommendations:
  • Add Linux/Unix command-line examples for encoding conversion, such as using 'iconv' or 'recode' to convert files between encodings.
  • Include Python or other cross-platform code samples for encoding conversion, demonstrating parity with the .NET/Azure Functions approach.
  • Provide examples using Linux file systems and connectors (e.g., SFTP, NFS) and mention Linux-native encoding names (e.g., ISO-8859-1, UTF-16LE) alongside Windows code pages.
  • Clarify that .NET and Azure Functions are cross-platform, and provide guidance for running these examples on Linux hosts.
  • List encoding names as recognized on both Windows and Linux, and link to cross-platform encoding documentation (such as the Python codecs module or iconv encoding list).
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-08-17 00:01 #83 in_progress ✅ Clean
2025-07-13 21:37 #48 completed ✅ Clean
2025-07-12 23:44 #41 in_progress ❌ Biased
2025-07-09 13:09 #3 cancelled ✅ Clean
2025-07-08 04:23 #2 cancelled ❌ Biased

Flagged Code Snippets

{ "headers": { <...> "Content-Type": "text/plain; charset=windows-1250" }, "body": "non UTF-8 text content" }
using System; using System.IO; using System.Text; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Azure.WebJobs.Host; using Newtonsoft.Json; public static class ConversionFunctionv2 { [FunctionName("ConversionFunctionv2")] public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, TraceWriter log) { log.Info("C# HTTP trigger function processing a request."); Encoding inputEncoding = null; string requestBody = new StreamReader(req.Body).ReadToEnd(); dynamic data = JsonConvert.DeserializeObject(requestBody); if (data == null || data.text == null || data.encodingInput == null || data.encodingOutput == null) { return new BadRequestObjectResult("Please pass text/encodingOutput properties in the input JSON object."); } Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); try { string encodingInput = data.encodingInput.Value; inputEncoding = Encoding.GetEncoding(name: encodingInput); } catch (ArgumentException) { return new BadRequestObjectResult($"Input character set value '{data.encodingInput.Value}' is not supported. Supported values are listed at https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx."); } Encoding encodingOutput = null; try { string outputEncoding = data.encodingOutput.Value; encodingOutput = Encoding.GetEncoding(outputEncoding); } catch (ArgumentException) { return new BadRequestObjectResult($"Output character set value '{data.encodingOutput.Value}' is not supported. Supported values are listed at https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx."); } return (ActionResult) new JsonResult( value: new { text = Convert.ToBase64String( Encoding.Convert( srcEncoding: inputEncoding, dstEncoding: encodingOutput, bytes: Convert.FromBase64String((string) data.text))) }); } }
using System; using System.IO; using System.Text; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Azure.WebJobs.Host; using Newtonsoft.Json; public static class ConversionFunctionNET { [FunctionName("ConversionFunctionNET")] public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequest req, TraceWriter log) { log.Info("C# HTTP trigger function processing a request."); Encoding inputEncoding = null; string requestBody = new StreamReader(req.Body).ReadToEnd(); dynamic data = JsonConvert.DeserializeObject(requestBody); if (data == null || data.text == null || data.encodingInput == null || data.encodingOutput == null) { return new BadRequestObjectResult("Please pass text/encodingOutput properties in the input JSON object."); } Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); try { string encodingInput = data.encodingInput.Value; inputEncoding = Encoding.GetEncoding(name: encodingInput); } catch (ArgumentException) { return new BadRequestObjectResult($"Input character set value '{data.encodingInput.Value}' is not supported. Supported values are listed at https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx."); } Encoding encodingOutput = null; try { string outputEncoding = data.encodingOutput.Value; encodingOutput = Encoding.GetEncoding(outputEncoding); } catch (ArgumentException) { return new BadRequestObjectResult($"Output character set value '{data.encodingOutput.Value}' is not supported. Supported values are listed at https://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx."); } return (ActionResult)new JsonResult( value: new { text = Convert.ToBase64String( Encoding.Convert( srcEncoding: inputEncoding, dstEncoding: encodingOutput, bytes: Convert.FromBase64String((string)data.text))) }); } }
{      "text": "SMOpbG/Dr3Nl",     "encodingInput": "utf-8",     "encodingOutput": "windows-1252" }