Weird Characters when reading Blob from Container
I have some text files that contain either OK or FAIL written to a storage account. If I download the files to disk, the contents display as expected in notepad,
However, if I get the file contents to a variable and Write-Host
that, I get �O K
I am doing this:
$storageContext = New-AzureStorageContext $storageAccountName $storageAccountKey
$storageContainer = "monitor"
$storageBlobs = Get-AzureStorageBlob -Container $storageContainer -Context $storageContext
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText()
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
I thought that maybe I could tell it to use UTF8 like this:
$encoding = [System.text.Encoding]::UTF8
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText($encoding)
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
However, that doesn't work.
I'm now trying getting it as a ByteArray with .DownloadToByteArray
but my first attempt is throwing errors.
Why are there extra characters and spaces when retrieved via Powershell but not when viewed in notepad. Am I correct in thinking this is a simple encoding issue?
azure-powershell
add a comment |
I have some text files that contain either OK or FAIL written to a storage account. If I download the files to disk, the contents display as expected in notepad,
However, if I get the file contents to a variable and Write-Host
that, I get �O K
I am doing this:
$storageContext = New-AzureStorageContext $storageAccountName $storageAccountKey
$storageContainer = "monitor"
$storageBlobs = Get-AzureStorageBlob -Container $storageContainer -Context $storageContext
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText()
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
I thought that maybe I could tell it to use UTF8 like this:
$encoding = [System.text.Encoding]::UTF8
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText($encoding)
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
However, that doesn't work.
I'm now trying getting it as a ByteArray with .DownloadToByteArray
but my first attempt is throwing errors.
Why are there extra characters and spaces when retrieved via Powershell but not when viewed in notepad. Am I correct in thinking this is a simple encoding issue?
azure-powershell
add a comment |
I have some text files that contain either OK or FAIL written to a storage account. If I download the files to disk, the contents display as expected in notepad,
However, if I get the file contents to a variable and Write-Host
that, I get �O K
I am doing this:
$storageContext = New-AzureStorageContext $storageAccountName $storageAccountKey
$storageContainer = "monitor"
$storageBlobs = Get-AzureStorageBlob -Container $storageContainer -Context $storageContext
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText()
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
I thought that maybe I could tell it to use UTF8 like this:
$encoding = [System.text.Encoding]::UTF8
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText($encoding)
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
However, that doesn't work.
I'm now trying getting it as a ByteArray with .DownloadToByteArray
but my first attempt is throwing errors.
Why are there extra characters and spaces when retrieved via Powershell but not when viewed in notepad. Am I correct in thinking this is a simple encoding issue?
azure-powershell
I have some text files that contain either OK or FAIL written to a storage account. If I download the files to disk, the contents display as expected in notepad,
However, if I get the file contents to a variable and Write-Host
that, I get �O K
I am doing this:
$storageContext = New-AzureStorageContext $storageAccountName $storageAccountKey
$storageContainer = "monitor"
$storageBlobs = Get-AzureStorageBlob -Container $storageContainer -Context $storageContext
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText()
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
I thought that maybe I could tell it to use UTF8 like this:
$encoding = [System.text.Encoding]::UTF8
foreach($storageBlob in $storageBlobs) {
$blobContents = $storageBlob.ICloudBlob.DownloadText($encoding)
$blobName = $storageBlob.Name
Write-Host $blobName
Write-Host $blobContents
Write-Host
}
However, that doesn't work.
I'm now trying getting it as a ByteArray with .DownloadToByteArray
but my first attempt is throwing errors.
Why are there extra characters and spaces when retrieved via Powershell but not when viewed in notepad. Am I correct in thinking this is a simple encoding issue?
azure-powershell
azure-powershell
asked Jan 2 at 17:21
neildeadmanneildeadman
2,208133750
2,208133750
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Yes, it is an encoding issue. If the file is encoding with UTF8, you should use UTF8 to decode it. If it's encoding with unicode, you should use unicode to decode it.
Then in your case, I think it's using unicode. You should use Unicode to decode it, like $encoding = [System.text.Encoding]::Unicode
.
I can reproduce your issue, and test it with encoding UTF8(not work), but works with Unicode.
UTF8:
Unicode:
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010577%2fweird-characters-when-reading-blob-from-container%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Yes, it is an encoding issue. If the file is encoding with UTF8, you should use UTF8 to decode it. If it's encoding with unicode, you should use unicode to decode it.
Then in your case, I think it's using unicode. You should use Unicode to decode it, like $encoding = [System.text.Encoding]::Unicode
.
I can reproduce your issue, and test it with encoding UTF8(not work), but works with Unicode.
UTF8:
Unicode:
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
add a comment |
Yes, it is an encoding issue. If the file is encoding with UTF8, you should use UTF8 to decode it. If it's encoding with unicode, you should use unicode to decode it.
Then in your case, I think it's using unicode. You should use Unicode to decode it, like $encoding = [System.text.Encoding]::Unicode
.
I can reproduce your issue, and test it with encoding UTF8(not work), but works with Unicode.
UTF8:
Unicode:
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
add a comment |
Yes, it is an encoding issue. If the file is encoding with UTF8, you should use UTF8 to decode it. If it's encoding with unicode, you should use unicode to decode it.
Then in your case, I think it's using unicode. You should use Unicode to decode it, like $encoding = [System.text.Encoding]::Unicode
.
I can reproduce your issue, and test it with encoding UTF8(not work), but works with Unicode.
UTF8:
Unicode:
Yes, it is an encoding issue. If the file is encoding with UTF8, you should use UTF8 to decode it. If it's encoding with unicode, you should use unicode to decode it.
Then in your case, I think it's using unicode. You should use Unicode to decode it, like $encoding = [System.text.Encoding]::Unicode
.
I can reproduce your issue, and test it with encoding UTF8(not work), but works with Unicode.
UTF8:
Unicode:
edited Jan 3 at 1:31
answered Jan 3 at 1:22
Ivan YangIvan Yang
4,149128
4,149128
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
add a comment |
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
That works! Never thought to try UNICODE, I tried ASCII and UTF8. Thanks.
– neildeadman
Jan 3 at 12:06
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010577%2fweird-characters-when-reading-blob-from-container%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown