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 subtle Windows bias by referencing Windows-centric encodings (e.g., 'windows-1250', 'windows-1252') in examples, linking to Microsoft/Windows-specific documentation for supported encodings, and omitting Linux/Unix-specific encoding examples or guidance. There are no examples or notes about Linux tools, encodings, or platform-specific considerations, and all code samples are in C#/.NET, which is more common in Windows environments.
Recommendations:
  • Include examples using common Linux encodings (e.g., 'ISO-8859-1', 'UTF-16', or 'UTF-8') alongside or before Windows-specific encodings.
  • Add notes or examples for Linux/Unix users, such as how to check or convert file encodings using Linux tools (e.g., 'iconv', 'file', 'enca').
  • Reference cross-platform or Linux documentation for character encodings, not just Microsoft/Windows sources.
  • Provide at least one example using a Linux/Unix-based tool or scripting language (e.g., Python) for encoding conversion.
  • Clarify that the .NET code samples can run cross-platform (if true), and mention any platform-specific caveats.
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" }