package org.dromara.knowledge.data;

import org.dromara.common.core.exception.ServiceException;
import org.springframework.stereotype.Component;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * 纯文本文档解析器
 * 支持 TXT、JSON、XML 等纯文本格式
 *
 * @author pengles
 */
@Component
public class TextDocumentParser implements DocumentParser {
    @Override
    public String parse(byte[] bytes, String filename) {
        try {
            // 尝试使用 UTF-8 编码，如果失败则使用系统默认编码
            String text;
            try {
                text = new String(bytes, StandardCharsets.UTF_8);
            } catch (Exception e) {
                text = new String(bytes, Charset.defaultCharset());
            }
            return text;
        } catch (Exception e) {
            throw new ServiceException("文本解析失败: " + e.getMessage());
        }
    }
}
