오늘 UTF8Encoding.UTF8.GetBytes
및 Encoding.UTF8.GetBytes
코드가 사용되었습니다. 그들 사이에 어떤 차이가 있습니까?UTF8Encoding.UTF8.GetBytes와 Encoding.UTF8.GetBytes간에 차이가 있습니까?
답변
전혀 차이가 없습니다.
은UTF8Encoding
입니다. MSDN (Encoding.UTF8
)에서
:
이 속성을 사용하면 간단하게
UTF8Encoding.GetBytes
를 호출 할 수 있습니다
대신 UTF8Encoding.UTF8.GetBytes
의 UTF8Encoding 개체를 반환합니다.
이들은 UTF8Encoding
클래스에 액세스하고 정적 멤버 GetBytes
을 호출하는 두 가지 다른 방법 일뿐입니다.
UTF8Encoding은 정적 UTF8 속성을 Encoding에서 상속하므로 실제로 동일한 속성입니다.
그 수업의 디자인에 뭔가 잘못 됐나 봅니다. 'UTF8Encoding.ASCII'를 호출하는 능력이 이상하게 보입니다. – Stijn
@ Stijn 끔찍하지 않습니다. 한 가지 이유는 무엇입니까? (왜 UTF8Encoding.UTF8을 호출해도 좋을까요?), 또 다른 "인코딩에 대한 지식"은 특정 인코딩의 개념적 역할에 해당하므로 "여기"에서 "거기"로 이동할 수 있습니다. 두려운 것은 아니다. –
물론 그렇게하지 않겠지 만 클래스 소비자에게 혼란을 야기합니다. 인코딩은 이미 복잡한 주제이므로 imho는 필자의 이해가 정확하다는 것을 확인하기 위해 인터넷에서 문서 및 기타 리소스를 철저히 읽어야하는 불편한 디자인을 나타냅니다. – Stijn
적어도 하나의 차이점이 있습니다. Encoding.UTF8은 UTF8Encoding이 (기본적으로) 수행되지 않는 동안 BOM을 작성합니다. 그것을 언급하지 않았다 시간 (.NET 프레임 워크 4)에서
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
UTF8Encoding utf8EmitBOM = new UTF8Encoding(true);
Console.WriteLine("utf8 preamble:");
ShowArray(utf8.GetPreamble());
Console.WriteLine("utf8EmitBOM:");
ShowArray(utf8EmitBOM.GetPreamble());
Console.WriteLine("Encoding.UTF8 preamble:");
ShowArray(Encoding.UTF8.GetPreamble());
}
public static void ShowArray(Array theArray) {
foreach (Object o in theArray) {
Console.Write("[{0}]", o);
}
Console.WriteLine();
}
}
나는 그 점이 다르다는 것을 알고 있었지만 BOM을 작성하는 것을 기억하지 못했습니다. 감사! –
정적'.UTF8' 속성은 Encoding에서 호출되었는지 UTF8Encoding에서 호출되었는지에 관계없이 기본 생성자를 사용합니다. – Nyerguds
- 1. SharpPcap Encoding.UTF8.GetBytes
- 2. 실행 시간 차이가 있습니까?
- 3. 평등의 순서에 차이가 있습니까?
- 4. 왜 이름의 차이가 있습니까?
- 5. UserDict와 Dict간에 차이가 있습니까?
- 6. 'b'와 'c'사이에 차이가 있습니까?
- 7. 거짓/거짓 - 차이가 있습니까?
- 8. touchMoved와 Swipe간에 차이가 있습니까?
- 9. 차이가
- 10. C#은 동일합니다. Encoding.UTF8.GetBytes & Convert.FromBase64String?
- 11. Javac 디버깅간에 성능 차이가 있습니까?
- 12. C 문자열 할당 차이가 있습니까?
- 13. 마진 값 사이에 차이가 있습니까?
- 14. XAMPP와 램프간에 큰 차이가 있습니까?
- 15. 1.1em과 1.05em 사이에 차이가 있습니까?
- 16. Debug와 Release간에 (성능) 차이가 있습니까?
- 17. 2 가지 수입간에 차이가 있습니까?
- 18. 자바 또는 루비, 차이가 있습니까?
- 19. Seq.iter와 비교 - 어떤 차이가 있습니까?
- 20. + (공백) 또는 - (공백) 차이가 있습니까?
- 21. WSGI와 FCGI간에 속도 차이가 있습니까?
- 22. 반품 여부는 어떤 차이가 있습니까?
- 23. for 루프 조건에서 성능 차이가 있습니까?
- 24. 이 두 코드간에 성능 차이가 있습니까?
- 25. SELECT 문의 열 순서에 차이가 있습니까?
- 26. 두 Java 세그먼트의 성능 차이가 있습니까?
- 27. fooBar 대신 self.fooBar를 사용하면 성능에 차이가 있습니까?
- 28. 왜 아래 주어진 출력 사이에 차이가 있습니까?
- 29. MouseEvents 또는 TouchEvents, 실행 속도의 차이가 있습니까?
- 30. 왜이 성능 차이가 있습니까? (예외 잡기)
이 좋은 설명을 한 – Aidiakapi
부여 설명서를하지만, 현재의 문서 (.NET 프레임 워크 4.5)는 '에 해당 말한다 : 이것 좀 봐 새로운 UTF8Encoding (true)'을 실행하면 BOM이 방출됩니다. – Stijn
또한, @ JonHanna의 답변은 실제 질문을 더 잘 표현한 것 같습니다 : 'UTF8Encoding.UTF8'이'Encoding.UTF8'과 다른지. – Stijn