■ TextLoader 클래스를 사용해 복수 텍스트 파일 문서를 로드하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from langchain_community.document_loaders import TextLoader TextLoaderList = [ TextLoader("paul_graham_essay.txt" , encoding = "utf-8"), TextLoader("state_of_the_union.txt", encoding = "utf-8") ] documentList = [] for textLoader in TextLoaderList: documentList.extend(textLoader.load()) |
※ pip install langchain-community 명령을 실행했다.
■ TextLoader 클래스의 생성자에서 encoding 인자를 사용해 UTF-8 인코딩 파일을 로드하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
from langchain_community.document_loaders import TextLoader textLoader = TextLoader("paul_graham_essay.txt" , encoding = "utf-8") |
※ pip install langchain-community
더 읽기
■ UTF-8 인코딩 텍스트 파일로 변환하는 방법을 보여준다. ※ UTF-8 BOM 인코딩도 UTF-8 인코딩으로 변환한다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
import os import codecs import chardet import io def convertToUTF8File(sourceFilePath, targetFilePath): sourceBufferedReader = open(sourceFilePath, "rb") byteCount = min(32, os.path.getsize(sourceFilePath)) sourceContentBytes = sourceBufferedReader.read(byteCount) if sourceContentBytes.startswith(codecs.BOM_UTF8): encoding = "utf-8-sig" else: result = chardet.detect(sourceContentBytes) encoding = result["encoding"] sourceTextIOWrapper = io.open(sourceFilePath, "r", encoding = encoding) sourceContentString = sourceTextIOWrapper.read() sourceTextIOWrapper.close() targetTextIOWrapper = open(targetFilePath, "w", encoding = "UTF8") targetTextIOWrapper.write(sourceContentString) targetTextIOWrapper.close() return targetFilePath convertToUTF8File("./test1.txt", "./test2.txt") |
▶ requirements.txt
더 읽기
■ Marshal 클래스의 PtrToStringUTF8 정적 메소드를 사용해 비관리 메모리에서 UTF-8 문자열을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Runtime.InteropServices; using System.Text; byte[] sourceByteArray = Encoding.UTF8.GetBytes("안녕하세요"); IntPtr targetHandle = Marshal.AllocHGlobal(sourceByteArray.Length); Marshal.Copy(sourceByteArray, 0, targetHandle, sourceByteArray.Length); string target = Marshal.PtrToStringUTF8(targetHandle); Console.WriteLine(target); Marshal.FreeHGlobal(handle); |
■ str 클래스의 encode 메소드에서 errors 인자를 사용하는 방법을 보여준다. ▶ errors 인자 : strict (PY)
|
디폴트 값이다. 올바르지 않은 인코딩을 적용했을 때 UnicodeEncodeError 예외가 발생한다. text ="가나다" print(text.encode("latin1", "strict")) """ Traceback (most recent call last): File "D:\TestProject\TestProject\main.py", line 3, in <module> text.encode("latin1", "strict") UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256) """ |
▶ errors 인자 : ignore
더 읽기
■ open 함수를 사용해 UTF-8 인코딩 파일을 여는 방법을 보여준다. ▶ 예제 코드 (PY)
|
textIOWrapper = open("d:/test.txt", "r", encoding = "utf-8") |
■ str 클래스의 encode 메소드를 사용해 UTF-8 문자열 바이트들을 구하는 방법을 보여준다. ▶ 예제 코드 (PY)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
sourceString = "가" targetBytes = sourceString.encode("utf-8") print(targetBytes) """ b'\xea\xb0\x80' """ print(type(targetBytes)) """ <class 'bytes'> """ |
■ #과 -*-을 사용해 소스 코드 인코딩을 설정하는 방법을 보여준다. ▶ 예제 코드 (PY)
■ Encoding 클래스의 : GetEncoding/Convert/GetString 정적 메소드를 사용해 비 ASCII 문자를 제거하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
string source = "Räksmörgås"; Encoding sourceEncoding = Encoding.UTF8; Encoding targetEncoding = Encoding.GetEncoding(Encoding.ASCII.EncodingName, new EncoderReplacementFallback(string.Empty), new DecoderExceptionFallback()); byte[] targetArray = Encoding.Convert(sourceEncoding, targetEncoding, Encoding.UTF8.GetBytes(source)); string target = Encoding.ASCII.GetString(targetArray); Console.WriteLine(target); |
■ UTF8Encoding 클래스를 사용해 UTF-8(BOM) 인코딩 방식으로 파일을 생성하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.IO; using System.Text; string targetFilePath = @"d:\test.txt"; string content = "테스트 문자열 입니다."; File.WriteAllText(targetFilePath, content, new UTF8Encoding(true)); // UTF-8(BOM), false인 경우 UTF-8 방식으로 인코딩한다. |
■ Get-Content 명령에서 -Encoding 스위치를 사용해 파일을 읽는 방법을 보여준다. ▶ 실행 명령
|
Get-Content 'd:\test.txt' -Encoding UTF8 |
■ Out-File 명령에서 -FilePath/-Encoding 스위치를 사용하는 방법을 보여준다. ▶ 실행 명령
|
Get-Service | Sort-Object -Property Status | Select-Object -Property Name,Status | Out-File -FilePath d:\service.txt -Encoding utf8 |
■ MemoryStream 클래스를 사용해 문자열에서 메모리 스트림을 구하는 방법을 보여준다. ▶ MemoryStream 클래스 : 문자열에서 메모리 스트림 구하기 예제 (C#)
|
using System; using System.IO; using(MemoryStream stream = GetMemoryStream("ABCDEFGHIJKLMNOPQRSTUVWXYZ")) { foreach(byte value in stream.ToArray()) { Console.Write(value.ToString("x2")); } Console.WriteLine(); } // 4142434445464748494a4b4c4d4e4f505152535455565758595a |
▶
더 읽기