2017-01-18 17 views
2

Я надеялся, что кто-то может помочь с внедрением TeXHyphenator-J с использованием CFML.JAVA Hyphenator using Coldfusion

Я использую JavaLoader.cfc для создания объекта ColdFusion TeXHyphenator-J (как в коде ниже). При запуске кода я не получаю никаких ошибок и возвращается строка. Однако он не переносится?

<!--- Load Javaloader ---> 
<cfset paths = arrayNew(1)> 
<cfset paths[1] = expandPath("assets/Hyphenator/texhyphj.jar")> 
<cfset loader = createObject("component", "assets.javaloader.JavaLoader").init(paths)> 

<!--- Create buffered stream to TeX file ---> 
<cfset FileInputStream = createobject("java", "java.io.FileInputStream").init(expandPath("assets/Hyphenator/hyphen.tex"))> 
<cfset BufferedInputStream = createobject("java","java.io.BufferedInputStream").init(FileInputStream)> 

<!--- Initiate Hyphenator ---> 
<cfset h = loader.create('net.davidashen.text.Hyphenator').init()> 
<!--- load the TeX table into Hyphenator ---> 
<cfset h.loadTable(BufferedInputStream)> 
<!--- Get hyphenated string, Hyphenator should return as-so-ci-ate ---> 
<cfset retStr = h.hyphenate('associate')> 

<cfdump var="#retStr#"> 

ответ

0

однако это не дефис

Хотя не сразу видно, возвращаемое значение фактически является дефис. Выбранный hyphen character, ie \u00ad просто не отображается. Демпинг каждого символа в строке показывает, мягкие переносы имеет значение ASCII 173:

97 : a 
115 : s 
173 : ­ <== soft hyphen 
115 : s 
111 : o 
173 : ­ <== soft hyphen 
99 : c 
105 : i 
97 : a 
116 : t 
101 : e 

Так один простое решение было бы заменить этот символ со стандартным дефисом:

newString = replace(retStr, chr(173), "-", "all") 

примечанием стороны, бег тот же пример непосредственно в java также дал «as-so-ciate», не «as-so-ci-ate».

 Смежные вопросы

  • Нет связанных вопросов^_^