使用Coldfusion的JAVA断字器

使用Coldfusion的JAVA断字器,java,coldfusion,hyphenation,javaloader,Java,Coldfusion,Hyphenation,Javaloader,我希望有人能帮助实现使用CFML 我正在使用JavaLoader.cfc创建TeXHyphenator-J的ColdFusion对象(如下代码所示)。当运行代码时,我没有得到任何错误,并且返回一个字符串。但是它没有连字符 <!--- Load Javaloader ---> <cfset paths = arrayNew(1)> <cfset paths[1] = expandPath("assets/Hyphenator/texhyphj.jar")>

我希望有人能帮助实现使用CFML

我正在使用JavaLoader.cfc创建TeXHyphenator-J的ColdFusion对象(如下代码所示)。当运行代码时,我没有得到任何错误,并且返回一个字符串。但是它没有连字符

<!--- 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#">

但是,它没有连字符

虽然不是很明显,但返回的值实际上是连字符的。所选的只是不可见。转储字符串中的每个字符表示软连字符的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
另请注意,直接在java中运行同一个示例也会产生“as so ciate”,而不是“as so ci ate”

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