readme GBK编码问题
This commit is contained in:
parent
be9185543b
commit
7e66c13497
|
@ -115,7 +115,7 @@ module RepositoriesHelper
|
||||||
def new_readme_render_decode64_content(str, owner, repo, ref, readme_path, readme_name)
|
def new_readme_render_decode64_content(str, owner, repo, ref, readme_path, readme_name)
|
||||||
file_path = readme_path.include?('/') ? readme_path.gsub("/#{readme_name}", '') : readme_path.gsub("#{readme_name}", '')
|
file_path = readme_path.include?('/') ? readme_path.gsub("/#{readme_name}", '') : readme_path.gsub("#{readme_name}", '')
|
||||||
return nil if str.blank?
|
return nil if str.blank?
|
||||||
content = Base64.decode64(str).force_encoding('UTF-8')
|
content = Base64.decode64(str).encoding == Encoding::ASCII_8BIT ? Base64.decode64(str).force_encoding("GBK").encode("UTF-8"): Base64.decode64(str).force_encoding('UTF-8')
|
||||||
# s_regex = /\s\!\[.*?\]\((.*?)\)\s/
|
# s_regex = /\s\!\[.*?\]\((.*?)\)\s/
|
||||||
s_regex_c = /`{1,2}[^`](.*?)`{1,2}/
|
s_regex_c = /`{1,2}[^`](.*?)`{1,2}/
|
||||||
s_regex = /```([\s\S]*?)```[\s]?/
|
s_regex = /```([\s\S]*?)```[\s]?/
|
||||||
|
@ -180,7 +180,9 @@ module RepositoriesHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
return content
|
return content
|
||||||
rescue
|
rescue Exception => e
|
||||||
|
Rails.logger.error("===================#{readme_path}:#{readme_name}:error:#{e}")
|
||||||
|
# e.backtrace.each { |msg| Rails.logger.error(msg) }
|
||||||
return str
|
return str
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -196,7 +198,7 @@ module RepositoriesHelper
|
||||||
|
|
||||||
def readme_decode64_content(entry, owner, repo, ref, path=nil)
|
def readme_decode64_content(entry, owner, repo, ref, path=nil)
|
||||||
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
||||||
content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
content = entry['content'].present? ? entry['content'] : Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
||||||
# Rails.logger.info("content===#{content}")
|
# Rails.logger.info("content===#{content}")
|
||||||
# readme_render_decode64_content(content, owner, repo, ref)
|
# readme_render_decode64_content(content, owner, repo, ref)
|
||||||
new_readme_render_decode64_content(content, owner, repo, ref, entry['path'], entry['name'])
|
new_readme_render_decode64_content(content, owner, repo, ref, entry['path'], entry['name'])
|
||||||
|
@ -205,9 +207,9 @@ module RepositoriesHelper
|
||||||
def decode64_content(entry, owner, repo, ref, path=nil)
|
def decode64_content(entry, owner, repo, ref, path=nil)
|
||||||
if is_readme?(entry['type'], entry['name'])
|
if is_readme?(entry['type'], entry['name'])
|
||||||
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
Rails.logger.info("entry===#{entry["type"]} #{entry["name"]}")
|
||||||
content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
content = entry['content'].present? ? entry['content'] : Gitea::Repository::Entries::GetService.call(owner, repo.identifier, URI.escape(entry['path']), ref: ref)['content']
|
||||||
# Rails.logger.info("content===#{content}")
|
# Rails.logger.info("content===#{content}")
|
||||||
# readme_render_decode64_content(content, owner, repo, ref)
|
return Base64.decode64(content).force_encoding("GBK").encode("UTF-8") if Base64.decode64(content).encoding == Encoding::ASCII_8BIT
|
||||||
return Base64.decode64(content).force_encoding('UTF-8')
|
return Base64.decode64(content).force_encoding('UTF-8')
|
||||||
else
|
else
|
||||||
file_type = File.extname(entry['name'].to_s)[1..-1]
|
file_type = File.extname(entry['name'].to_s)[1..-1]
|
||||||
|
|
Loading…
Reference in New Issue