Как правило, Entity Framework будет лучшим решением для этого. Ниже приведена ссылка на поддерживаемые базы данных, использующие Entity Framework Entity Framework Database Supported . Однако, если вы хотите подключиться к другим базам данных, вам нужно будет выполнить свои собственные операции CRUD (Создать, Получить, Обновить, Удалить). Вот пример CRUD с использованием MongoDB.
Можно использовать iconv. В Windows можно использовать его под Cygwin.
iconv -f from_encoding -t to_encoding file
Это могло работать на Вас, но заметить, что захватит каждый файл в текущей папке:
Get-ChildItem | Foreach-Object { $c = (Get-Content $_); `
Set-Content -Encoding UTF8 $c -Path ($_.name + "u") }
То же самое с помощью псевдонимов для краткости:
gci | %{ $c = (gc $_); sc -Encoding UTF8 $c -Path ($_.name + "u") }
Steven Murawski предлагает использовать Out-File
вместо этого. Различия между обоими cmdlets следующие:
Out-File
попытается отформатировать вход, который это получает.Out-File
кодировка по умолчанию основана на Unicode, тогда как Set-Content
использует значение по умолчанию системы.Вот пример, принимающий файл test.txt
не существует ни в одном случае:
PS> [system.string] | Out-File test.txt
PS> Get-Content test.txt
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
# test.txt encoding is Unicode-based with BOM
PS> [system.string] | Set-Content test.txt
PS> Get-Content test.txt
System.String
# test.txt encoding is "ANSI" (Windows character set)
На самом деле, если Вам не нужно никакое определенное кодирование Unicode, Вы могли бы также сделать следующее для преобразования текстового файла в Unicode:
PS> Get-Content sourceASCII.txt > targetUnicode.txt
Out-File
"оператор перенаправления с дополнительными параметрами", своего рода.
Самым легким путем было бы Получать-содержание 'путь/к/текст/файл' |-файл 'имя//файл'.
-Файл имеет - кодирование параметра, значение по умолчанию которого является Unicode.
Если бы Вы хотели написать сценарий пакета их, то Вы могли бы сделать что-то как
$files = get-childitem 'directory/of/text/files'
foreach ($file in $files)
{
get-content $file | out-file $file.fullname
}
Используйте Систему. IO.StreamReader (Для чтения содержания файла) класс вместе с Системой. Текст. Кодирование. Кодирование (Для создания объекта Кодера, который делает кодирование), базовый класс.
Вы могли создать новый текстовый файл и записать байты из исходного файла в новый, поместив '\0' перед каждым исходным байтом (предполагающий, что файл оригинального текста был на английском языке).
псевдо код...
Тусклая система, файл, содержание, newFile, oldFile
Константа ForReading = 1, ForWriting = 2, ForAppending = 3 константы AnsiFile =-2, UnicodeFile =-1
Система набора = CreateObject ("Сценарии. FileSystemObject...
Файл набора = система. GetFile ("text1.txt")
Набор oldFile = файл. OpenAsTextStream (ForReading, AnsiFile)
содержание = oldFile. ReadAll ()
oldFile. Близко
система. CreateTextFile "text1.txt"
Файл набора = система. GetFile ("text1.txt")
Набор newFile = файл. OpenAsTextStream (ForWriting, UnicodeFile)
newFile. Запишите содержание
newFile. Близко
Надеюсь, что этот подход будет работать..