Private/Invoke-UniWebRequest.ps1

function Invoke-UniWebRequest {
    param(
        [Parameter(Mandatory = $true, Position = 0, ValueFromPipeline = $true)]
        [hashtable]$params
    )

    $ProgressPreference = 'SilentlyContinue'
    $response = Invoke-WebRequest @params -ContentType "application/json;charset=utf-8"
    $ProgressPreference = 'Continue'

    if (($PSVersionTable['PSVersion'].Major -ge 6) -or ($response.Headers['Content-Type'] -match 'charset=utf-8')) {
        return $response.Content | ConvertFrom-Json
    }
    else {
        $response = $response.Content | ConvertFrom-Json
        $result = $response.choices[0].message.content
        if ($null -eq $result) {
            return $response
        }
        else {
            $dstEncoding = [System.Text.Encoding]::GetEncoding('iso-8859-1')
            $srcEncoding = [System.Text.Encoding]::UTF8
            $result = $srcEncoding.GetString([System.Text.Encoding]::Convert($srcEncoding, $dstEncoding, $srcEncoding.GetBytes($result)))
            $response.choices[0].message.content = $result
            return $response
        }
    }
}